tweet.md + md2rich: Turn Any X Thread Into a Blog Post
A new tool called tweet.md (tweet.md) launched in early June 2026. Paste any X (Twitter) thread URL, and it extracts every tweet into clean Markdown. Combine it with md2rich—which renders Markdown to rich text for LinkedIn, Medium, and X Articles—and you have a complete X-to-article pipeline that takes under 30 seconds.
This matters because X threads are one of the highest-quality sources of technical writing on the internet. Developers write full books as threads. But a thread on X is hard to search, hard to reference, and has zero SEO presence. Turning a good thread into a permanent blog post unlocks search traffic, citation links, and archival value.
1. What tweet.md does
tweet.md is about as minimal as a web tool gets. Open tweet.md, paste an X thread URL, click "Fetch." A few seconds later, every tweet in the thread is formatted as clean Markdown below the input.
No login. No API key. No registration. It hit Show HN in early June 2026 and quickly crossed 100 points, with comments noting how it fills an obvious gap in the X ecosystem for Markdown users.
Sample output
Feeding tweet.md a 5-tweet thread produces output like this:
# Why we moved from Redis to Dragonfly\n\nAfter 3 years on Redis 7.0, our team migrated to Dragonfly.\nHere is what we learned.\n\n---\n\n**1. Memory efficiency**\n\nRedis stores everything in a single-threaded event loop.\nDragonfly uses multi-threaded shared-nothing architecture.\nFor our 64GB workload, RSS dropped from 51GB to 29GB.\n\n---\n\n**2. Connection handling**\n\nAt 10k connections, Redis showed 120ms p99 latency.\nDragonfly at 10k: 18ms p99.\n\nThe `maxclients` cap on Redis became a bottleneck\nwe had to configure, Dragonfly handles it natively.\n\n---\n\n**3. Migration path**\n\nDragonfly speaks the Redis protocol.\nWe pointed our app at the Dragonfly port, ran a snapshot\nimport, and the app never noticed.\n\n---\n\n**4. Downsides**\n\n- Dragonfly's Lua scripting is not a 1:1 replacement\n- Snapshot export format is different\n- The community is smaller, fewer plugins\n\n---\n\n**5. Verdict**\n\nCache-heavy workloads: Dragonfly.\nPersistent + pub/sub: stick with Redis.\n\nvia @username
Each tweet is separated by ---, the sequence number is prepended with bold formatting, and the author's handle appears at the bottom. The output is clean, editable Markdown—no extra HTML, no t.co tracking links, no timestamp noise.
2. The full workflow: tweet.md → md2rich → publish
Here is the shortest path from an X thread to a published blog post:
- Find a high-quality thread on X
- Copy the thread URL (e.g.
https://x.com/username/status/123456789) - Open tweet.md, paste the URL, click "Fetch"
- Copy the full Markdown output
- Open md2rich.com, paste the Markdown into the left editor
- The right pane renders rich text in real time
- Click "Copy as Rich Text", switch to LinkedIn / X Articles / Medium
- Hit Ctrl+V (or Cmd+V)
No desktop software required. No logins. No data leaves your browser (md2rich is client-side) or travels through tweet.md's server only during the extraction step.
3. Why this pipeline matters
X threads have three critical limitations for long-form content:
- Not indexed: Google struggles to index multi-tweet threads as a single document
- Not citable: Sharing a thread means asking people to scroll through 20 tweets
- Not durable: If the author deletes their account, the thread is gone forever
Converting a thread to a blog post on LinkedIn, Medium, or your own site fixes all three. tweet.md removes the friction of manual copying, and md2rich removes the friction of Markdown rendering.
4. Alternatives compared
Besides tweet.md, there are a few other ways to get X threads into Markdown:
Option A: tweet.md (recommended)
Zero setup, no login, clean output, works in real time. Single input field, single output format. Nothing to configure.
Option B: Nitter instances
Nitter is an open-source alternative X frontend. Opening a thread on a Nitter instance gives you a text-only view. But the output is HTML, not Markdown, so you need a browser extension (like MarkDownload) or manual formatting. Nitter instances are frequently blocked by X, and available mirrors keep changing.
Option C: ThreadGrab browser extension
ThreadGrab is a browser extension that adds a "Grab Thread" button to the X page. It can export to Markdown, CSV, or plain text, and supports batch capture. Downside: requires a browser extension install, only works through browser interaction, and has no API for scripting.
Option D: Custom Python script
Using libraries like twikit or snscrape, you can script thread extraction with custom formatting. Maximum flexibility, but requires maintenance (X API changes constantly) and technical skill.
5. Comparison table
| Dimension | tweet.md | Nitter | ThreadGrab | Custom script |
|---|---|---|---|---|
| Setup | None | Find instance | Install extension | Install deps |
| Login | None | None | None | May need auth |
| Output | Markdown | HTML | Markdown/CSV | Custom |
| Batch | Single thread | Single thread | Batch capable | Batch capable |
| Reliability | Service-dependent | Instance-dependent | Browser-dependent | API-dependent |
| Learning curve | 20 seconds | 2 minutes | 5 minutes | 30+ minutes |
6. Privacy considerations
If you are republishing a public thread (technical analysis, industry commentary), privacy is not a concern. But if you are working with unpublished draft threads or internal discussions, here is where data goes:
- tweet.md: The X URL is sent to its server for extraction. The developer states no persistent storage, but the content is parsed server-side once.
- md2rich: 100% client-side. Markdown never leaves your browser. Close the tab, nothing persists.
- Target platform (LinkedIn / X Articles / Medium): Data reaches their servers during publish. This is unavoidable in the final step.
This chain is more private than alternatives like "rewrite with ChatGPT" (sends data to OpenAI) or "schedule with a social media tool" (stores content long-term on a third-party server). Only tweet.md sees your content during extraction, and by design it does not store it.
7. Who benefits
- Content creators: Scan X for 50 threads a day, convert the best 1-2 to LinkedIn articles
- Technical writers: Turn hot X threads into permanent blog posts with SEO value
- Community managers: Archive community discussions from X to official sites
- Researchers: Track an author's thread history as structured documents
FAQ
Does tweet.md work with non-English threads?
Yes. The tool is language-agnostic. Chinese, Japanese, or Korean threads all extract cleanly. Emoji and special characters are preserved.
Can I paste tweet.md's output directly into md2rich?
Yes. tweet.md outputs standard Markdown, and md2rich handles it without any modifications. Paste into the left editor, see the rendered preview on the right, then copy as rich text.
What happens if tweet.md goes down?
tweet.md is hosted as a simple web service. If it's unavailable, the ThreadGrab browser extension is a good fallback. For production pipelines, a custom script provides the most reliability.
8. Conclusion
tweet.md fills a clear gap: X thread to Markdown should be one URL and one button, not a multi-tool workflow. md2rich fills the next gap: Markdown to rich text should be paste and copy, not Word or Google Docs.
Together they form the lightest X-to-blog-post pipeline available in mid-2026. Next time you scroll past a good thread on X, try the workflow: paste the URL into tweet.md, copy the Markdown, open md2rich.com, render it, and paste into your platform of choice. In 30 seconds, an ephemeral thread becomes a permanent, searchable, citable article.
Try md2rich: open it, write or paste Markdown, copy rich text in one click.
Related: Markdown to X Articles: The Complete Workflow · Markdown to LinkedIn: The Honest Guide · Files.md: An Open-Source Obsidian Alternative · Why Use a Client-Side Markdown Converter