DEV Community

Cover image for Markdown to X thread: the rules nobody writes down
Writeous
Writeous

Posted on

Markdown to X thread: the rules nobody writes down

You wrote a post you're proud of. Now you want it as an X thread.

So you copy the first paragraph. Paste it into the composer.

"Tweet exceeds character limit."

You start hacking. Cut a clause. Cut another. Now it reads like a ransom note. You paste tweet two — it ends mid-sentence. Tweet three has a heading floating at the top like a typo. Your link broke across the seam. Somewhere in the middle, a code snippet detonated into raw backticks.

Twenty minutes later you have nine tweets that sound nothing like the thing you actually wrote.

Here's the thing: a thread isn't your post chopped into 280-character pieces. It's a different format with its own rules. And almost nobody writes those rules down.

So here they are.

Rule 1: 280 is not your budget. ~275 is.

Every tweet in a numbered thread carries a prefix — 1/, 7/12, whatever convention you use. That prefix eats into the limit.

If you write right up to 280 and then number the thread, your longest tweets blow past the ceiling and X rejects them. You find out one at a time, by hand, at tweet six.

Reserve the room up front. Write to ~275 and let the numbering live in the slack.

Rule 2: Never split a URL across two tweets.

A link that breaks across a tweet boundary doesn't become two half-links. It becomes zero links. The first half isn't clickable; the second half is gibberish.

The fix is a rule, not a vibe: a URL is atomic. It lives entirely inside one tweet or it doesn't go in. If the tweet's too full, the link bumps to its own line — never to the next tweet.

Rule 3: Your code block can't come along.

Paste a fenced code block into X and you get the worst of both worlds: no monospacing, no syntax highlighting, and the backticks show up as literal backticks.

A thread can't render code. So don't make it try.

Summarize what the code does in plain language, and point to where the actual code lives. "Here's the three-line fix" belongs in the blog. In the thread, it's: "The fix was three lines — swap the synchronous init for a deferred one. Link below."

Rule 4: Headings don't survive — and shouldn't.

## Rule 4 is a blog affordance. It tells a scanning reader where they are.

A thread reader isn't scanning. They're being pulled, one tweet to the next. A bare heading sitting at the top of tweet four breaks that pull — it's a speed bump with no road behind it.

Translate the heading into a hook instead. Don't announce the section. Start it.

Rule 5: The first tweet is the whole ballgame.

In a blog post, your headline did the selling and the first paragraph can warm up.

A thread has no headline. Tweet one is the headline, the lede, and the promise — in 275 characters, while it competes with the entire timeline.

If tweet one doesn't earn tweet two, nothing downstream matters. Spend your editing time here. It's worth more than the other tweets combined.


Notice what all five rules have in common: none of them are about writing. They're about translation. The same idea, re-shaped for where it's going to land.

Which is exactly the part that's mind-numbing to do by hand — and exactly the part a machine should do.

That's the boring problem we built Writeous to handle. Paste one markdown file. Get back a blog post, a newsletter, a LinkedIn post, and an X thread — each one formatted for where it's going, in about a minute. No login.

Writeous turning one markdown file into four formats

For the thread specifically, the rules above aren't suggestions in the output — they're enforced. Every tweet is guaranteed under 280 after numbering. URLs never split across a seam. Code blocks get summarized, not pasted. And the thread is renumbered deterministically at the end, so you can't end up with a 4/ that's secretly the fifth tweet.

It's free right now. The honest roadmap: connect your blog, your newsletter, your socials, and push the formatted versions out from one source — edit once, sync everywhere. That sync is clean for blogs and newsletters. For append-only feeds like a posted thread, it's best-effort by nature — you can't un-send a tweet. We'd rather tell you that than pretend otherwise.

But the thread-formatting part — the five rules nobody writes down — works today.

Write once. Publish everywhere. Actually.

Top comments (0)