Back to blog
Guide

X Embed Alternatives: What to Use When Native Embeds Break

Tamim
April 15, 2026
7 min read

X's native embeds are unreliable now. You already know this because you are here.

Maybe the embed loaded blank on your landing page. Maybe the tweet preview disappeared from your Discord server. Maybe the widget script just never fires and your visitors see a collapsed <blockquote> instead of a tweet. The reasons are well documented — X's API restructuring, authentication changes, and inconsistent OG metadata have broken the embed pipeline at multiple levels. If you want the full breakdown, see why X/Twitter embeds stopped working.

This guide is not about why they broke. It is about what to use instead — organized by what you are actually trying to do with the tweet content.


If You Are Sharing Tweets in Discord or Chat

This is the most common frustration. You paste a tweet URL in Discord and get either a broken preview, a generic X logo, or nothing at all. The fix is straightforward: use a proxy service that replaces X's broken OG metadata with working data.

FixTweet (fxtwitter.com)

The most popular solution. Open source, actively maintained, and used by millions of Discord users.

How to use it: Replace x.com or twitter.com in the tweet URL with fxtwitter.com. That is it.

Original:  https://x.com/username/status/123456789
FixTweet:  https://fxtwitter.com/username/status/123456789

When you paste the FixTweet URL into Discord, Discord fetches the OG metadata from FixTweet's servers instead of X's. FixTweet returns clean, complete metadata — profile image, tweet text, media attachments — and Discord renders a rich preview card.

FixTweet also handles images, videos, and quote tweets. For tweets with multiple images, it stitches them into a single preview. For a full walkthrough, see how to embed a tweet in Discord.

vxTwitter (vxtwitter.com)

An alternative to FixTweet with slightly different rendering. Same concept — swap the domain in the URL.

vxTwitter:  https://vxtwitter.com/username/status/123456789

The main differences: vxTwitter sometimes renders video embeds differently, and the preview card layout is slightly more compact. Both services are reliable. Most people pick one and stick with it. For a detailed comparison, see FixTweet vs vxTwitter vs native X embeds.

Discord Bot: FixEmbed

If you run a Discord server and want links to be automatically converted, FixEmbed is a bot that watches for X/Twitter URLs and replaces them with FixTweet URLs. No manual URL swapping needed.

Setup:

  1. Invite the FixEmbed bot to your server
  2. Grant it message read and send permissions
  3. It intercepts x.com and twitter.com links automatically

The bot deletes the original message and reposts it with the corrected URL (configurable). Useful for servers where members post tweet links frequently and nobody wants to remember the URL swap.


If You Are Embedding a Single Tweet in a Blog Post

For individual tweet embeds in blog posts or articles, X's oEmbed API still works — most of the time.

The Standard Approach

Go to the tweet on X, click the three-dot menu, select "Embed post," and you get a <blockquote> tag plus a script reference:

<blockquote class="twitter-tweet">
  <p lang="en" dir="ltr">
    This product saved me hours of work every week.
  </p>
  &mdash; Happy User (@happyuser)
  <a href="https://twitter.com/happyuser/status/123456789">
    April 10, 2026
  </a>
</blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Paste both into your HTML and the tweet renders with the full X interface — avatar, handle, text, engagement counts, and a follow button.

Tips That Improve Reliability

Use twitter.com URLs, not x.com. The embed script and oEmbed endpoint have better compatibility with the legacy domain. Some CMS platforms and embed tools still resolve twitter.com more reliably than x.com.

WordPress users: Use the built-in Twitter block, or paste the tweet URL on its own line in the editor. WordPress auto-converts it to an embed using oEmbed. No code needed.

Only include the script tag once. If you are embedding multiple tweets on the same page, you only need one <script> tag. Multiple copies create redundant network requests and slow down the page.

The Honest Caveat

This method relies entirely on X's infrastructure. The widget script (platform.twitter.com/widgets.js) loads from X's CDN. If X changes its embed format, deprecates the endpoint, or blocks requests from certain referrers — your embeds break. You will not know until a visitor reports it or you check the page yourself.

For a blog post where a broken embed is annoying but not catastrophic, this is fine. For a landing page where broken testimonials cost you conversions, it is a real risk. For more reliable approaches, see how to embed tweets on your website.


If You Are Adding Tweet Testimonials to a Landing Page

This is where most alternatives fall short, because the problem is fundamentally different from sharing a link or embedding a single post.

On a landing page, you want multiple testimonials displayed together, looking clean, loading fast, and linking back to verifiable sources. Here is where each option breaks down:

FixTweet

Designed for Discord and chat previews. It generates OG metadata for link unfurling — it does not produce an embeddable widget. You cannot put a FixTweet link on your website and expect a tweet to render. It solves a different problem.

Screenshots

Fast to create, but unverifiable. Anyone can screenshot a fabricated tweet or edit text before capturing. Conversion research consistently shows that unverifiable testimonials reduce trust — they perform worse than having no testimonial at all. See why screenshot testimonials don't convert for the full argument.

Screenshots also break on retina displays, look inconsistent across different page designs, and become a maintenance burden when you rebrand.

Manual HTML Cards

You can design custom card components that mimic the look of a tweet — avatar, name, handle, quote text. Full control over styling, zero external dependencies.

The problem: same as screenshots. There is no link to the original tweet, no way for a visitor to verify the quote is real. You are asking people to trust that you faithfully copied someone's words. And the maintenance cost scales linearly — every new testimonial is a manual HTML update.

Carousel Tools (LaunchWall)

Purpose-built for this exact use case. The approach: paste a post URL, the tool fetches all public replies, you curate which ones to include, and you get an iframe embed code.

LaunchWall works this way. You paste the URL of your launch post or product announcement on X, it pulls every public reply, and you select the ones worth showcasing. The output is a single embed code that renders a scrollable carousel of testimonial cards — each linking back to the original tweet.

Why this approach wins for landing pages:

  • One embed, multiple testimonials. Instead of 10 separate X widget embeds (each loading 300-600ms of script), you get one lightweight iframe.
  • Verifiable. Each card links to the original tweet. Visitors can click through and see the real post on X.
  • Updatable. Change which replies appear in your dashboard — no site code changes needed.
  • Curated. You control exactly which replies show up. No spam, no off-topic replies, no negative comments.

For a deeper dive into using X replies as social proof, see how to use Twitter testimonials on your website.


If You Are Embedding Tweets in Email

Email clients strip JavaScript. This means no embed solution works — not X's widget, not iframe embeds, not any third-party script.

Every major email client (Gmail, Outlook, Apple Mail, Yahoo) removes <script> tags and blocks iframe rendering for security reasons. There is no workaround for this.

What Actually Works

Screenshot plus link. Take a screenshot of the tweet, include it as an inline image, and hyperlink it to the original tweet URL. The recipient sees the tweet content and can click through to verify it.

Styled quote with attribution. Format the tweet as a blockquote with the author's name, handle, and a link to the original. Looks cleaner than a screenshot and is more accessible.

"This product completely changed how I handle customer feedback."
— @happyuser (View original tweet)

Both approaches give the reader the content and a path to the source. Neither requires JavaScript execution. For a complete guide with email-client-specific formatting tips, see how to embed a tweet in email.


If You Are Embedding Tweets in Presentations

Presentations have the same fundamental limitation as email: no script execution.

Google Slides: Screenshot is the only option. Take a high-resolution screenshot (2x or 3x on retina displays), crop it, and insert it as an image. Add the tweet URL in the speaker notes or as small text below the image for attribution.

PowerPoint: Technically supports web embeds via Insert > Web Page (or the LiveWeb add-in), but the results are unreliable. The embed may load during a live presentation or it may show a blank frame. For anything important, use a screenshot.

Keynote: Same as Google Slides. Screenshot plus attribution link.

For platform-specific walkthroughs, see how to embed a tweet in Google Slides and how to embed a tweet in PowerPoint.


Quick Comparison

Use CaseBest AlternativeWhy
Discord / chat sharingFixTweetReliable OG previews, simple URL swap
Blog post embedNative oEmbedFull tweet UI when it works
Landing page testimonialsLaunchWall carouselMultiple tweets, verifiable, updatable
EmailScreenshot + linkOnly option that works in email clients
PresentationsScreenshotNo script execution in slides

Frequently Asked Questions

What is the best free alternative to X embeds?

It depends on where you need the embed. For Discord and chat, FixTweet is free and open source. For blog posts, X's own oEmbed is free (and still works most of the time). For landing page testimonials, LaunchWall offers a 7-day trial for $1 — there is no fully free tool that produces verifiable, multi-tweet embeds with live links to the original posts.

Can I use FixTweet on my website?

Not directly. FixTweet generates Open Graph metadata for link previews — it does not produce an embeddable widget or iframe. If you paste a FixTweet URL on your website, nothing will render. FixTweet is designed for platforms that unfurl links (Discord, Slack, Telegram), not for website embedding.

Is there an API I can use to embed tweets?

X's oEmbed API (publish.twitter.com/oembed) is still available and returns HTML that you can render on a page. However, X's v2 API requires authentication and has rate limits that make it impractical for real-time embedding on high-traffic pages. Most developers use the oEmbed endpoint for individual tweet embeds and a dedicated tool for multi-tweet displays.

How do I embed tweets without using X's widget?

Three options. First, use the oEmbed blockquote approach without loading X's widget script — you get the raw quote text and attribution, but no interactive tweet UI. Second, build custom HTML cards that recreate the tweet layout with static data — fast and styled to your brand, but not verifiable. Third, use a carousel tool like LaunchWall that handles rendering in a lightweight iframe without loading X's widget script on your page.


Turn X replies into a testimonial carousel that works everywhere →