Tweet.md Stable 2026: When Nothing Changed, What Did We Learn?
Some weeks are news-heavy; this one is not. tweet.md, the X-to-Markdown converter that launched in May 2026, has been quiet since its last changelog entry on August 27, 2026 (a "no-charge demo" alongside publish/edit dates on every post). The homepage is stable, the JSON-LD dateModified reads 2026-08-24, and the latest product signal is — in tweet.md’s own words — "Try a no-charge demo." That is the whole week.
For an archivist, a quiet week is data. It tells you the tools that survived the first launch rush, the features that became table-stakes, and the gaps that nobody is racing to fill. This post is a tool landscape retrospective: where the X-to-Markdown market sits at the end of August 2026, when tweet.md is the right choice, and where ThreadGrab covers the rest.
Quick take: tweet.md is now a stable, paid, X-only converter with strong agent-API ergonomics (Next.js on Cloudflare, $5–$49 credit packs, Obsidian YAML frontmatter, profile-as-Markdown). ThreadGrab is a free, multi-platform (X + Bluesky + LinkedIn) archiver with a public profile API and trilingual UI. Use tweet.md when you want profile snapshots in your Obsidian vault; use ThreadGrab when you want a free, durable, multi-platform archive that does not depend on a single vendor’s pricing page.
What tweet.md is, three months in
tweet.md launched 2026-05-17 as a converter for X posts, threads, Articles, and profiles. Its homepage slogan is exactly what it does: Convert X/Twitter posts, threads, Articles, and profiles to clean Markdown for LLMs, agents, research, and archives. Just swap x.com for tweet.md. The site is a Next.js (App Router) build on Cloudflare, served from the Singapore edge with full server-side rendering — the H1, the four input tabs (Single post / Thread / X Article / Profile), and the JSON-LD are all in the first response, not a client shell.
The product surface is narrower than the homepage implies. Output is exactly two formats: markdown (default) or obsidian (Markdown with YAML frontmatter for an Obsidian vault). The docs are explicit: “plain text, never JSON.” Query knobs include format, thread (default branch-5, range 2–500), userinfo, stats, metadata, and apikey. Endpoints are /i/api/convert and /i/api/profile. There is no Bluesky, no LinkedIn, no Mastodon, no Threads.
What tweet.md costs, and what is unstated
Pricing is credit packs: $5 / 200 credits, $19 / 1,000, $49 / 3,000 (per-credit $0.025 → $0.019 → $0.0163). No subscription, no per-seat. Authentication is API key, Bearer header, session cookie, or a trusted-IP allowlist — multiple keys per account are allowed. Controlled demos for a *t-twmduser test profile are free.
What is not published: rate limits. The site does not list a rate cap anywhere visible, which matters for a tool that costs money per call. If you build an agent on top of tweet.md, you are trusting the vendor’s silent throttle — a risk you can avoid by buying a credit pack and treating each request as a metered spend. For research workflows that pull thousands of posts at a time, the absence of a stated rate limit is a yellow flag.
Where ThreadGrab covers different ground
ThreadGrab sits in the same category — capture public social content as Markdown — but with three structural differences that matter for archivists.
- Multi-platform: X, Bluesky, LinkedIn, and (via the headless capture pipeline) any rendered web page. tweet.md is X-only.
- Free, no account: ThreadGrab’s archive pipeline and the public
/api/profile/{username}endpoint require no API key and no payment. - Trilingual UI: EN / PT / ID. tweet.md is English-only with no localization surface in the source.
The free + multi-platform + trilingual shape is why ThreadGrab’s coverage overlaps with tweet.md on X but extends to platforms where tweet.md cannot follow — and why the two tools read as complements rather than substitutes.
Tweet.md vs ThreadGrab, side by side
| Capability | tweet.md | ThreadGrab |
|---|---|---|
| Platform coverage | X / Twitter only (posts, threads, Articles, profiles) | X + Bluesky + LinkedIn + headless web |
| Pricing | Paid credit packs ($5 / $19 / $49) | Free, no account |
| Output formats | Markdown, Obsidian YAML frontmatter | Markdown, structured JSON sidecar |
| API ergonomics | Bearer key, cookie, trusted IP allowlist | Public /api/profile/{username}, no auth |
| Profile as Markdown | Yes — first-class | Profile snapshots via the JSON API |
| Languages | English-only UI | EN / PT / ID |
| Rate limits published | No | Yes (per IP, polite defaults) |
| Hosted stack | Next.js on Cloudflare (Singapore) | Astro 7.1.6 + Cloudflare Pages Functions |
The honest summary: tweet.md wins on the profile-to-Obsidian workflow and on agent-API ergonomics; ThreadGrab wins on price, on multi-platform coverage, and on having documented rate limits you can plan around.
The "quiet week" archive workflow
When nothing is launching, the right move is to harden your existing archive. Here is a workflow that combines tweet.md’s Obsidian-friendly profile snapshots with ThreadGrab’s free, durable Markdown thread captures, kept side-by-side in one folder so the human-readable text and the structured provenance travel together.
my-archive/
tweet-md-profiles/
2026-08-28-handle-profile.md # Obsidian YAML frontmatter
threadgrab-threads/
2026-08-28-same-thread.md # clean Markdown, no metadata
2026-08-28-same-thread.json # structured sidecar (re-fetchable)
README.md
Use tweet.md for the profile snapshot you want to keep in your Obsidian vault (YAML frontmatter, tags, dataview-friendly). Use ThreadGrab for the thread itself (full text + a JSON sidecar you can re-fetch later). The two formats are deliberately different: tweet.md gives you a knowledge-graph node; ThreadGrab gives you a citation. An archive needs both.
A quick capture check
For one-off captures, the simplest test is whether the URL pattern you already have works on the tool you are using. Here is the shape both tools expect, side by side:
# tweet.md: swap the host
https://x.com/handle/status/123... -> https://tweet.md/i/status/123...
# ThreadGrab: same handle, public profile API
https://threadgrab.com/api/profile/handle
# Both return Markdown; tweet.md adds Obsidian YAML frontmatter
# on the obsidian format flag, ThreadGrab returns clean Markdown
# plus an optional JSON sidecar you can re-fetch.
If you find yourself swapping x.com for tweet.md in your URL bar several times a day, you are paying for the Obsidian convenience. If you find yourself pasting the same ThreadGrab profile URL into a script, you are wiring the durable archive path. Both are honest moves.
When to use which, in three short rules
- Use tweet.md when the deliverable is an Obsidian-friendly profile or thread snapshot, when you are okay paying per call, and when you only need X.
- Use ThreadGrab when the deliverable is a free, durable, multi-platform archive, when you need a public no-auth API, or when your readers are not English-only.
- Use both when you want the Obsidian YAML node and the durable Markdown thread, and you are willing to spend a few credits to get the frontmatter right.
What a stable market actually means
A quiet week is not a dead category — it is a category that has found its shape. tweet.md owns the X-only, Obsidian-first, agent-API niche; ThreadGrab owns the multi-platform, free, trilingual archive niche. Neither is racing to absorb the other. The honest reading is that the X-to-Markdown market in August 2026 is segmented, not consolidating: the converters that survive are the ones that pick a structural advantage (paid + agent-first, or free + multi-platform) and stop chasing the other side.
For archivists, that is good news. Two durable vendors beats one. The risks to watch are on each side: tweet.md’s unstated rate limits and single-platform scope; ThreadGrab’s dependency on the social platforms not changing their public-API surface out from under it. Neither is going away this month — both are worth wiring into a long-term archive workflow.
FAQ
Partially. tweet.md sells credit packs ($5 / $19 / $49) and offers a free demo for a *t-twmduser test profile. For real profile or thread conversions, you pay per call. There is no subscription and no free tier for production use.
Only X / Twitter — posts, threads, Articles, and profiles. There is no Bluesky, LinkedIn, Mastodon, or Threads support in the visible product surface.
No. The documentation is explicit: output is plain text, either Markdown or Obsidian YAML-frontmatter Markdown. If you need structured JSON, you have to parse the Markdown yourself or use a different tool.
No. There is no published per-second or per-day rate limit anywhere in the visible docs. Treat each request as a metered spend against your credit balance and back off on 429 responses rather than relying on a stated quota.
ThreadGrab is free, multi-platform (X + Bluesky + LinkedIn + headless web), and ships with a public no-auth profile API. tweet.md is paid, X-only, and ships with an Obsidian-friendly YAML output. Use the one that matches your archive shape; both are worth keeping.
Only if your archive shape changes. If you need multi-platform coverage, free unlimited capture, or a trilingual interface, move to ThreadGrab. If you need Obsidian YAML frontmatter, agent-API ergonomics, and you are happy paying per call, stay with tweet.md. Many archivists run both side-by-side.
Try ThreadGrab → Free. No account. Multi-platform.