FxEmbed / FxEmbed
git clone https://github.com/FxEmbed/FxEmbed.git
🔥 on GitHub Trending today
Fix X/Twitter and Bluesky embeds! Use multiple images, videos, polls, translations and more on Discord, Telegram and others
—
stars, 24h
—
stars, 7 days
+719
stars, 30 days · #414
5.8k
★ total
279
forks · 84 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageTypeScript
LicenseMIT
Created2022-07-13 (4y ago)
Last pushtoday
Watchers31
OwnerOrganization
Seen on GitHub Trending
- 2026-10-20 — #16 monthly in typescript · +719 ★
Links
- GitHub: github.com/FxEmbed/FxEmbed
- Homepage: https://docs.fxembed.com
- Releases · Issues · Hacker News mentions
README excerpt
# FxEmbed ## Home of FxTwitter, FixupX, and FxBluesky ### Embed videos, polls, quotes, translations, & more on Discord, Telegram, and others! [![Crowdin][crowdinbadge]][crowdin] [![esbuild][buildbadge]][build] [![Tests][testsbadge]][tests] [![Status][statusbadge]][status] [![License][licensebadge]][license] [build]: https://github.com/FxEmbed/FxEmbed/actions/workflows/build.yml [buildbadge]: https://github.com/FxEmbed/FxEmbed/actions/workflows/build.yml/badge.svg [tests]: https://github.com/FxEmbed/FxEmbed/actions/workflows/tests.yml [testsbadge]: https://github.com/FxEmbed/FxEmbed/actions/workflows/tests.yml/badge.svg [license]: https://github.com/FxEmbed/FxEmbed/blob/main/LICENSE.md [licensebadge]: https://img.shields.io/github/license/FxEmbed/FxEmbed [status]: https://status.fxtwitter.com [statusbadge]: https://status.fxtwitter.com/api/badge/8/uptime/720?label=Uptime%2030d [crowdinbadge]: https://badges.crowdin.net/fxtwitter/localized.svg [crowdin]: https://crowdin.com/project/fxtwitter ### `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: [code] Build and run with Docker Compose: [code] The worker listens on `http://localhost:8787`. Because FxEmbed routes by the `Host` header, test a specific realm like this: [code] 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: [code] Runtime secrets such as `CREDENTIAL_KEY` and `EXCEPTION_DISCORD_WEBHOOK` can be supplied through your shell or Compose `.env` file. Stop the service with: [code] **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.