
Who FxEmbed is for#
Discord and Telegram community managers fixing broken previews
Swap the domain prefix in shared X/Twitter or Bluesky links so members see rich video, poll, and quote embeds automatically, with no bot to invite or permission to grant.
Skip if:
Skip if your community mostly shares links from platforms outside FxEmbed's coverage; the public instances handle X/Twitter, X, and Bluesky specifically, and other platforms already have native rich previews in most chat apps.
Developers building bots or apps on social post data
Call the public FxTwitter and FxBluesky APIs directly to pull structured video URLs, poll results, and translations instead of scraping X or Bluesky, and self-host the same code if you need dedicated rate limits or uptime independent of the public instances.
Skip if:
Skip if you need official, rate-limit-guaranteed API access; FxEmbed's public API is a convenience layer built on top of the platforms, not their own developer platform.
Teams that need a self-hosted, custom-branded embed service
Deploy the Docker Compose setup to run your own FxEmbed instance with custom domains, branding, and credentials instead of pointing traffic at the public fxtwitter.com and fxbsky.app services.
Skip if:
Skip if you just need occasional rich embeds for personal use; the public instances handle that without any deployment work.
The problem it solves#
Social links to X/Twitter and Bluesky posts often paste into Discord and Telegram as bare text or a broken preview: no video player, no poll results, no quoted-post context. Native platform embeds are inconsistent, and X restricts what an unauthenticated crawler can see, so a shared link that should show a video clip or poll result instead shows a flat title and a blue link.
Community managers either accept the degraded preview or ask members to open the original app to see what a post actually contains, which breaks the flow of a Discord or Telegram conversation. Developers building bots or dashboards on top of social content face the same gap: X and Bluesky do not hand structured post data to arbitrary scrapers, so pulling video URLs, poll results, or translations means building and maintaining that extraction layer themselves.
How it solves it#
URL-prefix embedding, no install
Replace the domain in any X/Twitter, X, or Bluesky link (twitter.com to fxtwitter.com, x.com to fixupx.com, bsky.app to fxbsky.app) and Discord, Telegram, and other link-preview-aware platforms render the rich card automatically. No bot invite, browser extension, or account setup required.
Inline video and GIF playback
Videos and GIFs attached to a post embed and play directly inside the chat client instead of linking out, so memes, clips, and other video content stay in the conversation.
Poll results and quoted-post previews
Poll results render in-line with vote percentages, and quoted or reposted content shows its own media, so readers get the full context of a thread without opening the original app.
On-demand post translation
Appending a language code to the rewritten URL translates the post text into that language before rendering the embed, useful for cross-language Discord and Telegram communities.
Public FxTwitter and FxBluesky APIs
The same embed-generation logic that powers fxtwitter.com and fxbsky.app is exposed as a public API, so developers can pull structured post data (video URLs, poll results, translations) into their own bots or apps instead of scraping X or Bluesky directly.
Strengths and trade-offs#
Strengths
- MIT licensed with a working self-hosted pathThe full codebase is MIT licensed, and the project ships a documented Docker Compose setup plus a self-hosting guide, so a team that needs to run its own instance for reliability or custom branding is not blocked by a proprietary API.
- Actively maintained, high-traffic projectThe repository has 5,367 stars and 251 forks, with a push to main as recently as September 24, 2026, plus a dedicated status and uptime page at status.fxtwitter.com, signaling active maintenance for a service other community tools depend on.
- Zero-friction adoptionUsing FxEmbed requires no bot invite, OAuth grant, or extension install: swapping a domain prefix in the URL is the entire integration, well below the signup and configuration overhead of a paid embed API.
Trade-offs
- -Self-hosting runs the Cloudflare Workers runtime, not a plain serverFxEmbed is built as a Cloudflare Worker, so its Docker image runs the local Workers runtime through Wrangler rather than a standard Node.js server, and it requires the glibc-linked node:24-bookworm-slim base because Wrangler's workerd binary does not run reliably on Alpine or musl. This is a different operational model than a typical containerized web app.
- -Config changes require a full image rebuildEnvironment variables such as domain lists and branding are bundled at Docker build time, so changing them means rerunning `docker compose up -d --build` rather than just restarting the container, adding friction for iterative self-hosted configuration.
- -73 open issues at time of writingThe project carries 73 open GitHub issues against 5,367 stars, a moderate backlog for a service this widely used, worth checking before relying on it for an edge-case platform or format.
FxEmbed vs alternatives#
FxEmbed vs Paid Link Preview APIs
Rich link-embedding for chat apps is usually sold as a hosted API, similar to services like Iframely and Embed.ly, which generate preview cards from a URL for a recurring subscription fee. FxEmbed covers a narrower, sharper case: it targets X/Twitter, X, and Bluesky specifically, rendering video, polls, and quoted-post context that generic link-preview APIs often cannot reconstruct from those platforms' restricted crawling rules.
| Feature | FxEmbed | Typical paid embed API |
|---|---|---|
| License | MIT | Proprietary |
| Self-hosting | Yes (Docker + Cloudflare Workers) | Rarely offered |
| Pricing | Free | Subscription |
| X/Twitter video, poll, and quote rendering | Yes | Varies by provider |
A paid embed API is still the better choice for a team that needs one integration covering hundreds of arbitrary domains and does not want to operate any infrastructure. FxEmbed is the better choice for Discord and Telegram communities and developers whose embedding needs are concentrated on X/Twitter and Bluesky links, who want the option to self-host under an MIT license instead of paying a recurring fee for a proprietary service.
Quick start#
FxEmbed self-hosts as a Cloudflare Worker; the Docker setup runs the local Workers runtime through Wrangler, and config changes require a rebuild.
```bash
cp .env.example .env
cp wrangler.example.toml wrangler.toml
cp branding.example.json branding.json
docker compose up -d --build
```What it's built on#
- Languages
- JavaScriptTypeScript
- Infrastructure
- AWS
FAQ#
Is FxEmbed free to use?
Yes. FxEmbed is released under the MIT license, and the public fxtwitter.com, fixupx.com, and fxbsky.app instances are free to use with no account or signup. Self-hosting your own instance is also free beyond your own infrastructure costs.
How do I embed a rich X/Twitter or Bluesky post without installing anything?
Change the link's domain: twitter.com becomes fxtwitter.com, x.com becomes fixupx.com, and bsky.app becomes fxbsky.app. Paste the rewritten link into Discord, Telegram, or anywhere else that renders link previews, and the rich embed appears automatically.
Can I self-host FxEmbed?
Yes. The project provides a Docker Compose setup and a self-hosting guide; because FxEmbed is built as a Cloudflare Worker, the Docker image runs the local Workers runtime through Wrangler rather than a plain Node.js server. Copy the example .env, wrangler.toml, and branding.json files before your first build to set custom domains and credentials.
Does FxEmbed have an API for developers?
Yes. The public FxTwitter and FxBluesky APIs expose the same embed data used by the rewritten-URL service, including video URLs, poll results, and translations, so developers can integrate it into their own bots or apps.
Similar open-source tools#
FckSignups
Open-source tools that work instantly, no signup required
iptv
136k+ public TV channels, free M3U playlists and EPG data
jsreport
JavaScript report server with PDF, Excel, DOCX, and HTML output
stremio-web
Open source web UI for media streaming, powered by community addons.
agentic-inbox
Self-hosted email client with AI agent on Cloudflare Workers
browser-use
Python library giving any LLM full browser control, MIT licensed
