edvanbeinum / backstory

How am I supposed to review all this?!

What if your PR review tooling showed you this instead of a code diff?

Backstory's map: four components touched, page shell, map strip, flow engine and model reader, each with its changed files and line counts.

This is a real branch. 1,611 lines of code and here's what changes in the system.

AI can write PRs faster than I can understand them, but I'm still responsible for what ships. If our job as software engineers is increasingly about design and architecture, why do our review tools still just show us a code diff? A diff requires me to rescontruct all of that from changed lines, and frankly, it's exhausting.

What if our review tools answered these questions for us:

  • What parts of the system does this change touch?
  • What does each user action do now?
  • What happens to the data?

We've used sequence diagrams and C4 maps for decades; why not use them to help us understand code changes?

What might a code review tool for 2026 look like?

The architecture

See where things have changed

A C4 map highlights the components the change touches. See how it fits into the system before digging into individual files.

A close-up of the map: the map strip, the flow engine and the model reader, which has two new files, route.ts and draft.ts.
The flows

Understand the data flow and API

A sequence diagram for each user action. Follow the calls between components and what data passes between them.

A Backstory flow: a 12-step sequence diagram of what happens when the user clicks "Draft a model".
The data model

Data models are tricky

The data model is what bites us in the butt later, so our tooling should show us the changes to entities, fields and relationships before we merge.

Backstory's data view on a Mastodon pull request, "Add email subscriptions": a new EmailSubscription entity with four new fields, confirmation_token, confirmed_at, email and locale, linked to the existing Account.

Would you review a PR this way?

I'm playing around with this concept to get me up to speed quickly when a change needs my attention.

I'd love your take: would this help you judge a change? What would you still need before you'd merge?