Every AI chat app re-parses the entire markdown on each token—O(n²) slowdown. After 500 tokens, that’s 500 full re-renders. StreamMD fixes this with incremental block parsing: only new text is processed, completed blocks are memoized (no re-render), and only the active block updates. Result: ~300x less work. Built-in syntax highlighting (15 langs, ~3kB, zero deps). Drop-in:
No reviews yetBe the first to leave a review for StreamMD
Maker
📌
Hey Product Hunt! 👋
I'm Jai. I built StreamMD because I noticed every AI chat app has the same hidden performance bug: they re-parse the entire markdown string on every single token.
After 500 tokens, you're re-parsing a 2,000+ character string 500 times. The total characters processed grows QUADRATICALLY. At 100 tok/s, that's insane.
StreamMD's incremental parser only processes the NEW characters. Completed blocks (headings, code fences, paragraphs) are frozen via React.memo and never re-render.
Best way to see it: https://altrusian.com/stream-md
Watch the "Chars parsed" counter — naive hits 400K+ while StreamMD stays at ~1.3K for the same document.
It's the companion to ZeroJitter (our canvas renderer). Together they own streaming LLM display.
Would love your feedback! 🙏