Sharing our fixes upstream, 68 threads and what came back
Between 2026-08-29 and 2026-10-12 I commented on 68 beautiful-mermaid threads to say a fix exists in zombie-mermaid. Counts of what went out, the 19 threads that got a reply or reaction, the 49 that did not, and what I would do differently.
Read the postEarlier posts
Who Is Using the Fork? What We Can and Cannot See
18 GitHub stars, about 2,600 npm downloads per package in 20 days, one public benchmark and one vendored copy. What those numbers show, what they do not, and why there is no telemetry.
Read moreWorkers Support: One Bug Fixed, the Rest Unconfirmed
Upstream beautiful-mermaid#149 asks for rendering in Web Workers and Cloudflare Workers. We fixed the exact TypeError and reproduced the fix in a Workers-like Node setup, but we have not run a single diagram in workerd, and we cannot yet promise CPU time or startup limits.
Read moreThe A* Blowup That Upstream Still Has and the Fork Does Not
A plain 25-edge flowchart chain makes upstream beautiful-mermaid 1.1.3 spend about 19 seconds and then throw "Map maximum size exceeded". The same input renders in milliseconds here. We bisected it to a 12-line iteration cap that has been sitting in an open upstream PR since March.
Read moreFan-in, fan-out and parallel labeled edges in ASCII
Several edges into one node, one node into several, or two edges between the same pair. Each used to collapse into a single stroke in the ASCII renderer. What changed, what the output looks like now, and what still isn't fixed.
Read moreMaking the ASCII Renderer Faster, and What We Could Actually Measure
Flowchart ASCII time in the weekly benchmark history climbed from 109 ms to 306 ms in two weeks. A run of perf PRs followed, and the history file stopped before any of them landed. Here is what each PR did, what its own description measured, and what a before/after run on one machine says.
Read moreThree new diagram types - C4, architecture-beta and pie charts
C4, architecture-beta and pie charts now render to SVG and ASCII. Real output from the renderer for each, plus exactly where they differ from Mermaid and which one needs elkjs.
Read moreWhy CJK and emoji broke ASCII box borders, one fix and four upstream issues
Four issues and a PR in beautiful-mermaid's tracker describe the same bug, ASCII boxes that undercount CJK and emoji labels. Here is what they have in common, how the fork fixed it, and what the upstream thread looks like now.
Read moreFour Upstream ER Diagram Reports, Three Pull Requests
Between 2026-05-31 and 2026-06-22, four people reported ER diagram bugs to beautiful-mermaid. All four are still open upstream. Here is what each one was, what fixed it here, and what the fixes do not cover.
Read moreMatching mermaid.js subgraph layout, measured with an oracle
Flowcharts with subgraphs came out inverted compared with mermaid.js, and it took a script that scores layouts against the real thing to fix them and to see what still differs. The scorecard, the sample that scores 17 percent, and what the number can't tell you.
Read moreWhat happened to our package sizes between 2.2.6 and 5.0.1
We re-measured every published zombie-mermaid package on npm, packed and unpacked, at 2.2.6 and 5.0.1. The total dropped about 18% packed and 20% unpacked, three packages got bigger, and two causes account for most of the savings.
Read moreReal RL mirroring and cluster routing in ASCII flowcharts
graph RL used to print exactly like LR in the terminal, and edges leaving a subgraph punched straight through its border. Both are fixed now, with real renderer output showing what changed and what still looks rough.
Read moreThree majors in 13 days, from 3.0 to 5.0
zombie-mermaid shipped 3.0.0 on 2026-09-28, 4.0.0 on 2026-10-02 and 5.0.0 on 2026-10-10. What each major changed, taken from the release notes, and what the pace says about how this repo releases.
Read moreUpgrading from zombie-mermaid 2.x to 5.x
A short checklist for moving an app from 2.x to 5.x. Register elkjs in browsers, check your Node version, stop importing from src/, and prefer renderMermaidSVG.
Read moreFrom upstream PR to fork — cherry-picking with authorship intact
Two fixes sat unreviewed on beautiful-mermaid for weeks. Here is how they landed in zombie-mermaid as cherry-picks that keep the original authors in git history, and what both authors said when told.
Read moreascii-renderer and svg-renderer are now standalone packages
@zombie-mermaid/ascii-renderer and @zombie-mermaid/svg-renderer are now documented, supported standalone packages on npm — install just the piece you need instead of the whole umbrella.
Read moreThe Architecture Review That Paid for Itself the Same Day
An eight-item architecture review split four oversized React files and opened a CSS Modules seam with an explicit "no visual change" rule. Thirteen hours later, about twenty feature and fix PRs built a new diagram-discovery section on top of it, none of them touching the old monolith shape again.
Read moreThe Occupancy Guard That Fixed Five Bugs and Found a Sixth
A release-readiness audit found five confirmed ASCII rendering bugs, closed within hours by generalizing an old guard pattern from the ER renderer — until the same review turned up a sixth bug the guard couldn't fix, because the guard was never the problem.
Read morezombie-mermaid: why I forked beautiful-mermaid, what I've fixed, and where it's going
Why I forked a stalled beautiful-mermaid, a tour of what's been fixed and added since, and the process that keeps this fork actually maintained rather than just claiming to be.
Read moreWhy zombie-mermaid 2.0 breaks click handlers on purpose
A deliberate, narrowly-scoped breaking change in v2.0.0 removed the inert data-click-callback DOM attribute in favor of a structured parseMermaid().interactions map — here's why it was worth a major version.
Read moreThe Bugs We Fixed Are Still There
A direct source-code check against beautiful-mermaid's current upstream tree, not a rendered-output comparison, confirms eleven fixed parsing and rendering bugs are unchanged four months on.
Read more294 PRs, 14 Days — What Agent-Driven OSS Maintenance Actually Looks Like
The real daily merge-count histogram behind two weeks of reviving a dead fork — not the rounder number the tracking issue guessed — and what it does and doesn't tell you about agent-driven maintenance.
Read moreAccessibility Isn't a Checkbox, It's a CI Gate
Nine accessibility issues, filed and fixed over four days, ended with a written conformance statement and an automated test that fails the build if a future diagram type ships without an accessible name. Here's the arc from bug report to guarantee, and the regression that got caught eight hours after the guarantee shipped.
Read moreThe Bug Audit That Proved a Dead Fork Was Worth Saving
On 2026-08-25, one evening of deliberate, format-by-format testing turned "upstream looks stalled" into fifteen numbered, reproducible rendering bugs. That list is the actual case for continuing the fork.
Read moreTurning a Coverage Gap into a Parallelizable Backlog
Instead of one "improve test coverage" ticket, this repo filed nineteen — one per file, all in a 25-second burst — and closed all nineteen in under four minutes each. The backlog shape did more work than any individual fix did.
Read moreAdopting a Dead Fork — Day Zero of the Toolchain
Before a single Mermaid rendering bug got fixed in this fork, roughly twenty hours went into package managers, lint, coverage gates, and security scanning. Here's the verified timeline and the case for why that ordering wasn't optional.
Read moreRefactor After the Audit, Not Before
On 2026-08-27 this repo extracted five shared seams out of code that had been drifting for two days — not because it looked messy, but because the same missing abstraction had already produced the same bug twice, and would go on to produce it twice more.
Read moreShipping v1 of a Zombie
The unglamorous last mile between a patched fork and an npm-installable package — deploy target, attribution, branding, and the release itself — verified against the actual issues, PRs, and tags, not the plan.
Read moreShow, Don't Tell: Evidence-Based OSS Marketing
A demo page that renders real before/after diffs became a build-time guarantee, then a habit, then a hard requirement about what counts as proof. The four issues that got it there, verified against their own PRs.
Read moreWhy Terminal Rendering Is Secretly About Unicode, Not ASCII Art
The hardest recurring bug in zombie-mermaid's ASCII renderer wasn't diagram layout, it was column-width math, and it came back four times in a week wearing a different costume each time.
Read moreThe Judge That Never Sleeps — LLMs Auditing LLM-Written Renderers
A weekly job has an LLM compare this repo's ASCII rendering against real mermaid.js and files issues for what doesn't match. A second bot turns PR review comments into tracked issues. Neither fixes anything — that part is still humans.
Read morezombie-mermaid for mermaid-ascii users
A same-input comparison against mermaid-ascii 1.5.0 — where the two renderers match character for character, where they diverge, and what each does better.
Read more