FxEmbed/FxEmbed
Fix X/Twitter and Bluesky embeds! Use multiple images, videos, polls, translations and more on Discord, Telegram and others
FxEmbed
Home of FxTwitter, FixupX, and FxBluesky
Embed videos, polls, quotes, translations, & more on Discord, Telegram, and others!
twitter.com: Add fx before your twitter.com link
x.com: Add fixup before your x.com link
bsky.app: Add fx before your bsky.app link
Documentation
API Reference
Self-Hosting Guide
Docker
FxEmbed is a Cloudflare Worker, so the Docker image runs the local Workers runtime through Wrangler rather than starting a plain Node.js server. The image uses node:24-bookworm-slim because Wrangler's workerd binary is glibc-linked and does not run reliably on Alpine/musl.
Before building, copy and edit the local configuration files if you need custom domains, branding, or credentials:
cp .env.example .env
cp wrangler.example.toml wrangler.toml
cp branding.example.json branding.json
Build and run with Docker Compose:
docker compose up -d --build
The worker listens on http://localhost:8787. Because FxEmbed routes by the Host header, test a specific realm like this:
curl -H "Host: fxtwitter.com" -H "User-Agent: Discordbot/2.0" "http://localhost:8787/user/status/123"
You can also open http://localhost:8787/ without a Host header to see the local realm prefixes.
Environment variables from .env are bundled during the Docker build, so rebuild the image after changing domain lists or other build-time configuration:
docker compose up -d --build
Runtime secrets such as CREDENTIAL_KEY and EXCEPTION_DISCORD_WEBHOOK can be supplied through your shell or Compose .env file. Stop the service with:
docker compose down
Licensed under the permissive MIT license. Feel free to send a pull request!
Star History
Bugs or issues?
Feel free to open an issue
Additional Credits
Mosaic Multi-image combiner by Antonio32A and improved by Syfaro, Deer Spangle, and dangered wolf
Everyone else who has contributed to the main project!
Disclaimer
Twitter, Tweet, and X are trademarks of X Corp. This project is not affiliated in any way with X Corp or Twitter.