Markdown to Audio — RFCs, Design Docs, Notes
CastReader reads Markdown documents aloud like a magazine — headings first, prose in order, code blocks announced cleanly. Built for engineers reviewing RFCs on the commute.
RFC: distributed tracing across microservices
A good magazine editor used to guard the reader from a writer's self-indulgence. They cut what felt clever but earned nothing. In the web era that discipline disappeared, and much long-form writing now reads like a first draft dressed up. The best publications left are the ones that still let editors argue with writers — and sometimes win.
Markdown RFCs and design docs — listen while you review
How CastReader Handles Markdown
Built for the way engineers actually consume docs
Structure-Aware
Headings Announce Sections
CastReader reads H1/H2/H3 headings as spoken section breaks — so a long RFC plays like 'Section: Proposal' pause 'Section: Tradeoffs' pause 'Section: Migration Plan'. Navigation panel on screen lets you jump between sections while listening.
Code Blocks Handled
🔊 'Python code, 12 lines' — Then Move On
Fenced code blocks get announced with language and line count, then skipped. You hear the surrounding explanation, not every bracket and semicolon. Inline `monospace` code is read as normal text.
Lists and Tables
Bullets Stay Bullets, Tables Get Summarized
Bulleted and numbered lists read naturally with a short pause between items. Pipe-syntax tables are announced ('table with 3 columns and 12 rows') rather than read cell-by-cell. Blockquotes are announced and read with slight emphasis.
Links and Emphasis
Link Text Only, Not URLs
Inline `[link text](https://...)` reads as just the anchor text — CastReader skips the URL. Bold and italic emphasis is rendered as slight voice emphasis, not skipped. Strikethrough text is skipped (it's often deleted content).
Frequently Asked Questions
Everything you need to know about turning Markdown into audio
Which Markdown flavors are supported?
CommonMark (standard), GitHub-Flavored Markdown (tables, task lists, strikethrough), MDX (JSX components skipped), and most of the extensions used by Obsidian, Typora, Discourse, and writer-focused Markdown editors. Front-matter YAML blocks are recognized and skipped.
Can I paste Markdown or must I upload a file?
Both work. Drop a .md/.mdx file into CastReader's upload area, or paste Markdown directly into the text input. Same output either way.
Does it handle Markdown with front-matter?
Yes. YAML front-matter (the `---` block at the top of Jekyll/Hugo/Astro posts) is parsed and skipped during narration — you don't hear 'title colon my post title date colon dash dash dash' before the actual content.
What about Mermaid diagrams and embedded SVGs?
Mermaid code blocks are treated as regular code blocks — announced and skipped. The surrounding prose that explains the diagram is read normally. Embedded SVGs are skipped unless they have title/desc elements.
Can I use it for Jekyll/Hugo/Astro blog posts?
Yes. Export or copy the .md source of any blog post and CastReader reads it cleanly. Front-matter is skipped, headings become section breaks, code blocks are announced. Perfect for listening to your own drafts before publishing.
Is there a length limit?
Around 500,000 characters of Markdown — roughly a short book. For anything shorter (RFCs, design docs, blog posts), there's no practical limit.
Is it free?
Completely free. No API key, no usage limits, no account required.
Drop Your Markdown
Completely free. No signup. Upload .md or paste Markdown to get audio instantly.