Notes from building Grafema.
Posts on graph-driven development, benchmarks, design decisions, and things that broke along the way.
-
We benchmarked our own tool against a strong grep agent. We lost half the time.
22 probes, two codebases, four rounds. Where a code graph honestly beats text search, where it doesn't, and why we're publishing the rounds we lost.
Read -
A 60-second tour of a code graph
Nine files, 3,552 nodes, four commands. Here's what Grafema actually sees when it reads your code.
Read -
Anatomy of a silently broken release
Three linux-x64 binaries stopped building on May 25. We found out on June 10. A postmortem in three layers: wrong path, dynamic linking, and a release race condition.
Read -
Schema inference for code graphs: the missing piece of AI code understanding
Knowing that endpoint X is called is 30% of the context you need. Grafema's next layer: inferring data schemas from TypeScript interfaces, Zod validators, and runtime types.
Read -
Plugin architecture: how we made Grafema extensible (and why it matters)
How the Grafema plugin API works, why it's designed the way it is, and why extensibility beats hardcoded parsers — with a complete NestJS analyzer as the worked example.
Read -
Designing cross-boundary data flow tracking: from HTTP fetch() to backend handler
How Grafema traces frontend fetch() calls to backend route handlers across service boundaries. Design decisions, trade-offs, and why we chose hybrid AST over pure regex.
Read