X Articles — Viral Long-Form for Twitter
Beat the algorithm. Create and publish X (Twitter) Articles with proven viral patterns.
AI-powered formatting, hook patterns, and browser automation. Handles Draft.js quirks, embed limitations, and image uploads.
Quick Reference
Content Formatting Rules (CRITICAL)
X Articles uses Draft.js editor with specific quirks:
Line breaks = paragraph breaks - Each newline creates a new paragraph block with spacing
Join sentences on ONE LINE - All sentences in the same paragraph must be on a single line
Use plain text, not markdown - X Articles uses rich text, not markdown
No em dashes (—) - Replace with colons or rewrite sentences
Wrong:
Sentence one.
Sentence two.
Sentence three.
Right:
Sentence one. Sentence two. Sentence three.
Embed Limitation (IMPORTANT)
Embedded posts ALWAYS render at the END of the content block, not inline.
Workarounds:
Structure article to reference "see posts below"
Accept visual flow: text → text → embeds at bottom
Use
Insert > Postsmenu (don't paste URLs)
Image Specs
| Type | Aspect Ratio | Recommended Size |
|---|---|---|
| Cover/Header | 5:2 | 1792x716 or similar |
| Inline images | 16:9 or 4:3 | 1792x1024 (DALL-E HD) |
Viral Article Structure
The Template
HOOK (hit insecurity or opportunity)
WHAT IT IS (1-2 paragraphs with social proof)
WHY MOST PEOPLE WON'T DO IT (address objections)
THE [X]-MINUTE GUIDE
- Step 1 (time estimate)
- Step 2 (time estimate)
- ...
YOUR FIRST [N] WINS (immediate value)
- Win 1: copy-paste example
- Win 2: copy-paste example
THE COST (value comparison)
WHAT TO DO AFTER (next steps)
THE WINDOW (urgency)
CTA (soft or hard)
Hook Patterns That Work
Insecurity/FOMO:
everyone's talking about X... and you're sitting there wondering if you missed the window
Big Opportunity:
this is the biggest opportunity of our lifetime
News Hook:
X just open sourced the algo. Here's what it means for you:
RIP Pattern:
RIP [profession]. This AI tool will [action] in seconds.
WTF Pattern:
WTF!! This AI Agent [does amazing thing]. Here's how:
Personal Story:
When I was young, I was always drawn to people who...
CTA Patterns
Hard CTA (engagement bait):
RT + follow + reply 'KEYWORD' and I'll send the cheat sheet
Soft CTA:
If you take this advice and build something, let me know!
Simple:
Feel free to leave a like and RT if this helped.
Style Guide
Damian Player Style (Tactical)
All lowercase (deliberate)
Urgent, tactical tone
1500+ words
Heavy step-by-step detail
Hard CTA with lead magnet
Alex Finn Style (Motivational)
Normal capitalization
Warm, motivational tone
800-1200 words
Mix of WHY and HOW
Soft CTA + product links
Dan Koe Style (Philosophical)
Long-form essay (2000+ words)
Personal storytelling opener
Named frameworks ("The Pyramid Principle")
Deep teaching, not just tactics
Newsletter CTA
Common Mistakes to Avoid
Short articles under 500 words
Facts without story/emotion
No clear sections or headers
No objection handling
No immediate wins section
No CTA
Generic AI-sounding language
Em dashes (—) everywhere
Excessive emojis
Pasting tweet URLs instead of using Insert menu
Browser Automation (agent-browser)
Prerequisites
clawd browser running on CDP port 18800
Logged into X on the browser
Navigate to Article Editor
# Open new article
agent-browser --cdp 18800 navigate "https://x.com/compose/article"
# Take snapshot to see current state
agent-browser --cdp 18800 snapshot
Paste Content
# Put content in clipboard
cat article.txt | pbcopy
# Click content area, select all, paste
agent-browser --cdp 18800 click '[contenteditable="true"]'
agent-browser --cdp 18800 press "Meta+a"
agent-browser --cdp 18800 press "Meta+v"
Upload Cover Image
# Upload to file input
agent-browser --cdp 18800 upload 'input[type="file"]' /path/to/cover.png
# Wait for Edit media dialog, click Apply
agent-browser --cdp 18800 snapshot | grep -i apply
agent-browser --cdp 18800 click @e5 # Apply button ref
Publish
# Find and click Publish button
agent-browser --cdp 18800 snapshot | grep -i publish
agent-browser --cdp 18800 click @e35 # Publish button ref
# Confirm in dialog
agent-browser --cdp 18800 click @e5 # Confirm
Cleanup (Important!)
# Close tab after publishing
agent-browser --cdp 18800 tab list
agent-browser --cdp 18800 tab close 1
Troubleshooting: Stale Element Refs
If clicks fail due to stale refs, use JS evaluate:
agent-browser --cdp 18800 evaluate "(function() {
const btns = document.querySelectorAll('button');
for (let btn of btns) {
if (btn.innerText.includes('Publish')) {
btn.click();
return 'clicked';
}
}
return 'not found';
})()"
Content Preparation Script
Convert Markdown to X-Friendly Format
# scripts/format-for-x.sh
#!/bin/bash
# Converts markdown to X Articles format
INPUT="$1"
OUTPUT="${2:-${INPUT%.md}-x-ready.txt}"
cat "$INPUT" | \
# Remove markdown headers, keep text
sed 's/^## /\n/g' | \
sed 's/^### /\n/g' | \
sed 's/^# /\n/g' | \
# Remove markdown bold/italic
sed 's/\*\*//g' | \
sed 's/\*//g' | \
# Remove em dashes
sed 's/ — /: /g' | \
sed 's/—/:/g' | \
# Join lines within paragraphs (keeps blank lines as separators)
awk 'BEGIN{RS=""; FS="\n"; ORS="\n\n"} {gsub(/\n/, " "); print}' \
> "$OUTPUT"
echo "Created: $OUTPUT"
Pre-Publish Checklist
[ ] Hook grabs attention in first line
[ ] Objections addressed early
[ ] Step-by-step with time estimates
[ ] Immediate wins section included
[ ] CTA at the end
[ ] No em dashes (—)
[ ] Sentences joined on single lines
[ ] Cover image 5:2 aspect ratio
[ ] Embeds referenced as "see below"
[ ] Proofread for AI-sounding language
Tweetable Quote Patterns
For promoting your article:
Result + Cost:
I gave an AI agent full access to my MacBook. It checks email, manages calendar, pushes code. Costs $20/month. A VA costs $2000.
You Don't Need X:
You don't need a Mac Mini. You don't need a server. I'm running my AI agent on an old MacBook Air from a drawer.
Gap Warning:
The gap between 'has AI agent' and 'doesn't' is about to get massive. I set mine up in 15 minutes.
Urgency:
Most people will bookmark this and never set it up. Don't be most people. The window is closing.
Example Workflow
Write article in markdown with clear sections
Run format script to convert to X-friendly plain text
Generate cover image with DALL-E (1792x716 or 5:2 ratio)
Open X article editor via browser automation
Paste content and add section headers manually in editor
Upload cover image via file input
Add inline images at section breaks
Insert embeds (they'll appear at bottom)
Preview and proofread
Publish
Post promotional tweet with hook + article link
Related Skills
bird- X/Twitter CLI for posting tweetsde-ai-ify- Remove AI jargon from textai-pdf-builder- Generate PDFs (for lead magnets)
Built by @NextXFrontier