Bluesky vs X Articles: Open Long-Form for Markdown Writers
Bluesky's long-form runs on the open ATProto network; X Articles stays siloed in the X app. Compare both for Markdown writers publishing in 2026.
On May 28, 2026, Bluesky shipped version 1.122 of its app — a release that quietly added long-form reading through Standard.site, the community-driven ATProto project for blog posts and newsletters. The same week, WordPress announced a plugin that lets any WordPress site publish into the Atmosphere, the wider network of AT Protocol apps that includes Bluesky, Leaflet, pckt, and Offprint. The combination is the first real long-form alternative to X Articles that does not lock your writing inside one company's app. This article compares the two surfaces — Bluesky's open long-form layer and X's paid Articles feature — and walks through how a Markdown-first creator can use md2rich to draft once and publish to both, plus WordPress/ATProto and LinkedIn, without rewriting the post for each platform.
What changed on May 28, 2026
Three things changed on May 28, 2026 that matter for a Markdown-first creator. Standard.site became readable inside Bluesky. Bluesky 1.122 integrates Standard.site, a community project for long-form content on the AT Protocol. The Standard.site lexicon records let any ATProto-compatible app — Bluesky, Leaflet, pckt, Offprint, even third-party readers that nobody has built yet — surface blog posts, newsletters, and articles from across the network. On Bluesky's side, long-form posts currently appear as dynamic link cards (an enhanced preview), with Bluesky's team explicitly noting this is "just a first step" and that the rendering will improve. WordPress published into the Atmosphere. The WordPress plugin shipped earlier in May and uses the same Standard.site lexicon under the hood. The practical effect is that any WordPress blog post becomes ATProto data — not just a link you share on Bluesky, but data that lives on the protocol itself. Any ATProto app can then read it. The plugin joins the older WordPress plugin for ActivityPub (Mastodon), giving WordPress a way to federate to both major open social protocols from one dashboard. Bluesky passed 44.5M registered users. That is still far below X's 550M monthly active users, but it is large enough that a Bluesky-only post is no longer a vanity platform. For writers who care about the open web, the 44.5M is the floor; for writers chasing reach, the 550M is the ceiling. The change that actually matters for a Markdown creator is structural rather than numerical. Before May 28, Bluesky's network had no shared long-form layer; each app (Bluesky itself, Leaflet, pckt, Offprint) had its own publishing path, and there was no guarantee that a post published in one app would render in another. The Standard.site integration gives the ATProto network the same kind of shared long-form substrate that ActivityPub has had through Mastodon's article-style posts since 2023. Once you have that shared substrate, the comparison to X Articles becomes meaningful — both surfaces are now long-form platforms, not "a short-form platform with a long-form hack."
Why X Articles is the wrong comparison (Bluesky is open by design)
X Articles is the wrong comparison point for one reason: it is a siloed feature inside a closed app, not a network effect on an open protocol. To publish on X Articles you need a paid X subscription or a business account. To read an X Article you need an X account and to be on X's web or iOS/Android client. The article is hosted inside X's infrastructure. The data is not portable. If X deletes your account, your archive of X Articles goes with it. If X decides tomorrow to deprecate the Articles feature, every article ever published through it becomes inaccessible at its original URL. Bluesky's long-form layer is different by design. A post you publish through Standard.site (or via the WordPress plugin) lives on the ATProto network as data, not as a link inside one app. Bluesky's own client renders it as a preview card, but Leaflet renders it as a long-read, pckt renders it as a newsletter, and any future ATProto app can render it however its designers choose. Your PDS (Personal Data Server) stores your posts; you can move PDSs at will without losing the post history. Bluesky was the first PDS, but Eurosky, Blacksky, and Northsky are alternatives writers can switch to without changing anything about how their content is consumed by the network. The portability story is what makes Bluesky's long-form layer different from every closed-platform alternative that came before it. Substack, Medium, Ghost (Pro), and the paid X Articles tier all bind your post history to the platform's servers. ATProto binds your post history to a Personal Data Server that you can migrate away from at any time. The platform's business model can change without your archive disappearing. A Bluesky competitor's design team can build a better client, and your existing posts will surface in it without you doing anything. The open-by-design property matters for one specific Markdown-first use case: you can draft once in plain text, convert once with md2rich, and publish the same Markdown body to both Bluesky (via any ATProto front-end) and X Articles (via paste), without your draft being trapped in either platform's data model. The Markdown stays yours. The platform reads what you send it. Your draft is not locked into a hosted rich-text editor that requires the platform's permission to export.
Bluesky vs X Articles: a side-by-side comparison
A side-by-side comparison of the two surfaces for a Markdown creator writing in July 2026:
| Dimension | Bluesky long-form | X Articles |
|---|---|---|
| Underlying protocol | ATProto (open, federated) | X proprietary (closed, single-app) |
| Read access requirement | Any ATProto-compatible client | X account + X client |
| Write access requirement | PDS account (free) | Paid X subscription or business account |
| Data portability | Full (move PDS, keep post history) | None (posts deleted with account) |
| Federation reach | Any ATProto app (Leaflet, pckt, Offprint, future) | X web embeds only |
| Rendering (as of May 2026) | Dynamic link cards ("first step") | Native rich-text editor |
| Rich-text input | Paste from md2rich | Paste from md2rich |
| Registered user base | ~44.5M (Bluesky network) | ~550M MAU (X) |
| Cost | Free PDS tiers available | Paid X subscription required |
| Best fit for a Markdown creator | Open-web distribution + cross-PDS portability | Mass reach inside the X app |
Where md2rich fits: the conversion step that has to stay client-side
The conversion step has to stay client-side regardless of which surface you publish to. Here is why. Neither ATProto nor X exposes a Markdown-to-rich-text rendering API. The X Articles editor accepts a subset of HTML — paragraphs, headings, bold, italic, links, blockquotes, and a short list of inline formats — but the editor itself runs in your browser. ATProto clients similarly accept rich-text payloads that you provide. The Markdown you draft in Obsidian, iA Writer, or VS Code has to become the right rich-text payload for the target client, and that conversion is something an LLM agent cannot do on your behalf because paste requires browser DOM access the agent does not have. md2rich runs that conversion entirely in your browser. You draft in Markdown, paste the rich-text output into the Bluesky composer or the X Articles editor, and the platform receives exactly what the preview shows. There is no upload, no third-party server, no account. The agent does what agents are good at — drafting, revising, routing between models — and the converter does what browsers are good at — rendering Markdown to the specific rich-text payload each platform accepts, in your tab, with no third-party server in the loop. The other reason the conversion has to stay client-side is that no platform wants to be the converter. Bluesky's team would rather ship improvements to its preview-card rendering than maintain a Markdown-to-rich-text conversion endpoint. X's team would rather ship X Articles features than handle Markdown uploads. Both decisions are rational: the conversion is a thin client-side problem, and pushing it server-side creates a privacy and moderation surface that neither platform wants to operate. The conversion step that you used to do by hand (paste from a Markdown editor, lose formatting, manually re-apply bold and links) is exactly the conversion that md2rich was built to automate, and it stays out of the agent's loop.
This article is the third in a series on Bluesky long-form for Markdown writers. For the step-by-step workflow on writing Markdown and pasting it into Bluesky's long-form composer, see our Markdown to Bluesky long-form guide. For the broader ATProto and fediverse positioning — including PDS hosting, Eurosky migration, and cross-protocol publishing — see our ATProto & Fediverse Markdown 2026 overview.
This article is the third in a series on Bluesky long-form for Markdown writers. For the step-by-step workflow on writing Markdown and pasting it into Bluesky's long-form composer, see our Markdown to Bluesky long-form guide. For the broader ATProto and fediverse positioning — including PDS hosting, Eurosky migration, and cross-protocol publishing — see our ATProto & Fediverse Markdown 2026 overview.
A realistic 2026 workflow for a Markdown-first creator
A realistic 2026 workflow for a Markdown-first writer who wants both Bluesky long-form distribution and X Articles reach. Step 1 — Draft as plain-text Markdown. Open Obsidian, iA Writer, VS Code, or the editor pane at md2rich.com. The draft is plain text. The agent never sees the rich-text version. The Markdown syntax (heading levels, bullet lists, code fences, blockquotes, links) is the source of truth for what the final post will look like across every platform you publish to. Step 2 — Convert Markdown to rich text with md2rich. Paste your draft into the md2rich editor on the left, copy the rich-text rendering on the right. The conversion is deterministic and inspectable — the preview is exactly what the platform receives. This step is where the Markdown syntax (headings, lists, code blocks, blockquotes) becomes the rich-text payload Bluesky and X Articles both accept. Because the conversion is local and private, you can run it on drafts that contain unpublished business strategy or confidential sources without exposing them to a third-party server. Step 3 — Publish to Bluesky's long-form surface. If you have a WordPress blog, the WordPress plugin federates the post into the Atmosphere automatically. If you are posting directly into Bluesky, paste the rich-text body into the long-form composer (currently rendered as a preview card with future rendering improvements expected). The post lives on your PDS — you can switch PDSs later and the post history follows. Step 4 — Cross-post to X Articles. Open the X Articles editor, paste the same rich-text payload from md2rich. X renders it natively in its rich-text editor. You get the reach of 550M MAU inside the X app. The Markdown draft did not change between Step 2 and Step 4 — the conversion happened once and the rich-text payload is identical. Step 5 — Mirror to LinkedIn and Medium. The same rich-text payload works for LinkedIn's article editor and Medium's editor. Paste once into each. Five surfaces, one Markdown draft, one conversion. The Markdown stays yours; the rich-text payload is what each platform receives; the post history on each platform is whatever the platform's own data model supports (portable on ATProto, siloed on X, LinkedIn, and Medium).
What Bluesky's long-form does not solve yet
Three things Bluesky's long-form layer still does not solve as of July 2026, and where a Markdown creator needs a separate tool. Native rich-text rendering. Bluesky currently shows long-form posts as dynamic link cards — "essentially, an enhanced preview" per the May 28 announcement. A reader clicks through to read the full post on the publishing app (Leaflet, pckt, Offprint, or your WordPress site). Bluesky has stated the rendering will improve; until then, a Bluesky-only post is a discoverability surface, not a reading surface. For a writer who wants the post body to render inside Bluesky itself, the current answer is to wait for the announced rendering improvements or to use a Bluesky client that renders long-form natively (none exist publicly as of July 2026, but the open protocol allows anyone to build one). Voice preservation across PDS hops. ATProto lets you move PDSs, but the voice you write in is not portable in the protocol sense. If you switch PDSs, your post history moves, but your writing style does not. The fix is to keep the original Markdown draft intact in your editor and treat cross-PDS federation as the protocol's responsibility, not as an excuse to rewrite the post. Distribution asymmetry. X has 550M MAU inside one app; Bluesky has 44.5M registered users across the Atmosphere. For a writer chasing reach, X Articles still wins by an order of magnitude. The Bluesky layer is the better distribution surface for the open web; the X Articles layer is the better distribution surface for the mainstream. Most writers in 2026 want both, which is why the conversion step matters: you do not want to rewrite the post for each platform, so you convert once and paste into everywhere. No comment thread portability. ATProto's comment graph is part of the protocol, so when you federate a long-form post across PDSs, the comments federate too. But the comments on an X Article do not federate to Bluesky, and the comments on a Bluesky post do not federate to X. Cross-posting with md2rich does not unify the comment threads; it just unifies the post body. The reader communities on each platform stay separate.
FAQ
What is Bluesky's long-form layer and how does it differ from X Articles?
Bluesky's long-form layer (shipped in v1.122 on May 28, 2026) integrates Standard.site, a community-driven ATProto project for blog posts and newsletters. Posts published through Standard.site or the WordPress plugin live as data on the ATProto network, not as content inside one app. X Articles is a paid feature inside the X app; posts are siloed in X's infrastructure and not portable. The two surfaces serve different distribution goals: Bluesky for the open web, X for mainstream reach.
Do I need a paid subscription to publish on Bluesky long-form?
No. Publishing through Standard.site or the WordPress plugin requires only a PDS account on the ATProto network, which is free. Bluesky, Eurosky, Blacksky, and Northsky all offer free PDS tiers. X Articles, by contrast, requires a paid X subscription or a business account.
Can I use md2rich to publish Markdown to Bluesky long-form?
Yes. md2rich converts your Markdown draft into the rich-text payload that Bluesky's composer (and X Articles, LinkedIn, Medium, Substack) accept. Paste the rich-text output into the target composer and the platform receives exactly what the preview shows. The conversion runs entirely in your browser — no upload, no third-party server, no account.
Will Bluesky improve its long-form rendering beyond dynamic link cards?
Bluesky has explicitly stated that the May 28 link-card rendering is "just a first step" and that the functionality will be improved over time. The open-by-design property of ATProto means the rendering improvements can ship incrementally across any ATProto-compatible app (Bluesky, Leaflet, pckt, Offprint) without requiring a coordinated protocol change.
Should I cross-post the same Markdown draft to both Bluesky and X Articles?
For most writers in 2026, yes — but the platforms are not substitutes, they are complements. Bluesky's long-form is the open-web distribution surface (44.5M registered users, full data portability, federation reach across the Atmosphere). X Articles is the mainstream distribution surface (550M MAU inside one app). Drafting once in Markdown, converting once with md2rich, and pasting the rich-text payload into both composers is the lowest-friction way to publish to both.
Does the WordPress Atmosphere plugin work with self-hosted WordPress?
Yes. The WordPress plugin (announced earlier in May 2026) works with self-hosted WordPress sites as well as WordPress.com. Once installed, any blog post you publish is federated into the Atmosphere via Standard.site's lexicon records and becomes readable in any ATProto-compatible app.
Try the workflow
Bluesky 1.122 with Standard.site integration is available to any Bluesky user today; the WordPress Atmosphere plugin is in the WordPress plugin directory. X Articles is available to paid X subscribers and business accounts. The bridge between your Markdown draft and the rich-text payload every long-form surface accepts has been live at md2rich.com since launch — 100% client-side, no upload, no account, no third-party server. Draft once in Markdown, convert once with md2rich, paste into Bluesky's composer or X Articles' editor, and the post body is identical. The platform differences are in distribution and data portability; the conversion step stays in your browser.
Draft in Markdown — Publish Anywhere, 100% in Your Browser
md2rich runs entirely in your browser. Draft in Markdown, paste rich text into Bluesky's long-form composer, X Articles, LinkedIn, Medium, Substack, or Notion. The conversion is deterministic and inspectable — what you see in the preview is exactly what the platform receives.