Remix.run Logo
Show HN: Stage – Putting humans back in control of code review(stagereview.app)
49 points by cpan22 a day ago | 43 comments

Hey HN! We're Charles and Dean, and we're building Stage: a code review tool that guides you through reading a PR step by step, instead of piecing together a giant diff.

Here's a demo video: https://www.tella.tv/video/stage-demo-1pph. You can play around with some example PRs here: https://stagereview.app/explore.

Teams are moving faster than ever with AI these days, but more and more engineers are merging changes that they don't really understand. The bottleneck isn't writing code anymore, it's reviewing it.

We're two engineers who got frustrated with GitHub's UI for code review. As coding agents took off, we saw our PR backlog pile up faster than we could handle. Not only that, the PRs themselves were getting larger and harder to understand, and we found ourselves spending most of our time trying to build a mental model of what a PR was actually doing.

We built Stage to make reviewing a PR feel more like reading chapters of a book, not an unorganized set of paragraphs. We use it every day now, not just to review each other's code but also our own, and at this point we can't really imagine going back to the old GitHub UI.

What Stage does: when a PR is opened, Stage groups the changes into small, logical "chapters". These chapters get ordered in the way that makes most sense to read. For each chapter, Stage tells you what changed and specific things to double check. Once you review all the chapters, you're done reviewing the PR.

You can sign in to Stage with your GitHub account and everything is synced seamlessly (commenting, approving etc.) so it fits into the workflows you're already used to.

What we're not building: a code review bot like CodeRabbit or Greptile. These tools are great for catching bugs (and we use them ourselves!) but at the end of the day humans are responsible for what gets shipped. It's clear that reviewing code hasn't scaled the same way that writing did, and they (we!) need better tooling to keep up with the onslaught of AI generated code, which is only going to grow.

We've had a lot of fun building this and are excited to take it further. If you're like us and are also tired of using GitHub for reviewing PRs, we'd love for you to try it out and tell us what you think!

Peritract 7 minutes ago | parent | next [-]

> more and more engineers are merging changes that they don't really understand

You cannot solve this problem by adding more AI on top. If lack of understanding is the problem, moving people even further away will only worsen the situation.

jFriedensreich 28 minutes ago | parent | prev | next [-]

Looks kind of neat like devon.ai review / reviewstack crossover. But as i tell every of the dozens projects trying to make a commercial review tool: i would rather spend a week vibe copying this than onboarding a tool i have to pay for and am at the mercy of whoever made it. Its just over for selling saas tools like this. For agents i also need this local not on someones cloud. Its just a matter of time until someone does it.

cpan22 21 minutes ago | parent [-]

Thanks for the feedback! re: local vs cloud, I do think there is a cool work to be done around unifying the writing/reviewing experience locally, but we started with cloud because we designed this as a collaborative product with teams in mind

embedding-shape 2 hours ago | parent | prev | next [-]

It's an interesting idea, but I feel like it's missing almost the most important thing; the context of the change itself. When I review a change, it's almost never just about the actual code changes, but reviewing it in the context of what was initially asked, and how it relates to that.

Your solution here seems to exclusively surface "what" changes, but it's impossible for me to know if it's right or not, unless I also see the "how" first and/or together with the change itself. So the same problem remains, except instead of reviewing in git/GitHub/gerrit + figure out the documents/resources that lays out the task itself, I still have to switch and confirm things between the two.

cpan22 2 hours ago | parent | next [-]

I agree, that's also really important and something we're brainstorming

Currently on Stage we also generate a PR summary next to the chapters and that's where we want to do more "why" that pulls in context from Linear, etc.

And I know there's a lot of cool teams like Mesa and Entire working on embedding agent context into git history itself so that could an interesting area to explore as well

nathannaveen 2 hours ago | parent | prev [-]

I assume this problem could be solved if we write up what we actually want (like a GH issue) and maybe in the future the guys at Stage could use github issues as part of their PR review?

tasuki 2 hours ago | parent | prev | next [-]

> Stage automatically analyzes the diff, clusters related changes, and generates chapters.

Isn't that what commits are for? I see no reason for adding this as an after-thought. If the committers (whether human or LLM) are well-behaved, this info is already available in the PR.

dean_stratakos 2 hours ago | parent | next [-]

In our experience, it's difficult to create well-mannered commits as you code and new ideas pop into your head or you iterate on different designs (even for LLMs). One concept we toyed around with was telling an LLM to re-do a branch using "perfect commits" right before putting up a PR. But even then you might discover new edge cases and have to tack them on as additional commits.

We thought git wasn't the right level of abstraction and decided to tackle things at the PR level instead. Curious to hear your experiences!

kvdveer 2 hours ago | parent | prev | next [-]

I feel that grouping related change in commits can be challenging, as git really presents commits as grouping in time, not topic.

It is certainly possible to do topic-grouping in commits, but it requires significant effort to het that consistent on a team level.

tfrancisl an hour ago | parent | prev [-]

I concur. I cannot accept that we are so disconnected from what we're building that we can't go back and revise our commits or something else to make it make sense.

tfrancisl an hour ago | parent | prev | next [-]

Why is this a service and not an open source project? It doesn't seem to do much other than organize your commits within a PR (could be run once on a dev machine and shipped in the code, then displayed separately) and builds a dashboard for PRs that's not too far off from what github already offers, but could also be represented with fairly small structured data and displayed separately.

cpan22 an hour ago | parent [-]

Open source is something we're thinking about! We've just been focused on building for now but its definitely not off the table

namanyayg an hour ago | parent | prev | next [-]

Looks amazing. I've been trying different stacking PR tools and Graphite and this looks to be the most human-centric so far. I'll have a shot at using this within our team soon. Congrats on the launch!

cpan22 an hour ago | parent [-]

Thank you! Let us know any ways we can make it better

SkyPuncher an hour ago | parent | prev | next [-]

Hmm. All of the examples simply describe what the code is doing. I need a tool that explains the intent and context behind a change.

munksbeer an hour ago | parent [-]

Exactly. "Why was this change made"? "What were the options"? "Why this is a good way of doing it"? "What are the subtle things I came across while making this change"?

cpan22 36 minutes ago | parent [-]

Yep that's something we're actively working on! would love to hear any perspectives on best ways to approach this

phyzix5761 2 hours ago | parent | prev | next [-]

This is a really cool idea but where's the moat? What's stopping someone from replicating the functionality?

cpan22 2 hours ago | parent [-]

Thanks! I think we're really focused on making the overall review experience as guided and obvious as possible for the human. Chapters is a great start but we're coming up with more ideas on how we can make the process even easier

gracealwan 20 hours ago | parent | prev | next [-]

Totally different part of the reviewing experience, but I would love to see PR comments (or any revisions really) be automatically synced back to the context coding agents have about a codebase or engineer. There’s no reason nowadays for an engineer or a team of engineers to make the same code quality mistake twice. We manually maintain our agents.md with codebase conventions, etc, but it’d be great not to have to do that.

dean_stratakos 19 hours ago | parent | next [-]

100%. A big part of code review in my mind is to automate away specific mistakes and anti-patterns across a team. I think there are a lot of interesting things to be done to merge the code writing and code reviewing cycles.

t0mas88 9 hours ago | parent | prev [-]

I've been working on that as a small open source tool: https://github.com/smithy-ai/smithy-ai

It keeps a repository with markdown files as the agent context, makes those available (via a simple search and summarise MCP) and when closing a merge request it checks whether the context needs updating based on the review comments. If it needs updating a PR is opened on the context repository with suggested changes/additions.

kylestlb 2 hours ago | parent | prev | next [-]

I assume Gitlab/Github will add these sort of features to their products within the next few months

dean_stratakos 2 hours ago | parent [-]

It's possible, but at the same time it's been years and they haven't copied things like Graphite's dashboard or stacked PR interface yet. We have the advantage of speed :)

electrum 3 hours ago | parent | prev | next [-]

Does Stage work for PRs that have multiple commits? These could be considered "stacked diffs", but in the same PR.

dean_stratakos 2 hours ago | parent [-]

Chapters are regenerated every time a new commit is pushed to a PR. Our thinking is that the chapters should serve as "auto stacked diffs" since they should follow a logical order.

Do you or your team use stacking in your workflows?

whywhywhywhy 2 hours ago | parent | prev | next [-]

The idea of a workplace where people can’t be bothered to read what the ai is coding but someone else is expected to read and understand if it’s good or slop just doesn’t really add up.

I personally see the value of code review but I promise you the most vocal vibe coders I work with don’t at all and really it feels like something that could be just automated to even me.

The age of someone gatekeeping the codebase and pushing their personal coding style foibles on the rest of the team via reviews doesn’t feels like something that will exist anymore if your ceo is big on vibe coding.

dean_stratakos an hour ago | parent [-]

Agree that agents are definitely handling more and more of the coding side, and there's almost no doubt they will get better slop-wise.

In our view, even vibe coders should understand how the codebase works, and we think review is a natural place to pause and make sure you know what you and your coworkers are shipping. And we should have tools to reduce the mental load as much as possible.

Do you think there's a problem of cognitive debt among your coworkers who aren't reading the code or reviewing PRs?

malcolmgreaves 33 minutes ago | parent | prev | next [-]

Y’all are a bit nuts if you want 50% more per month than Claude Pro for this.

ryanjso a day ago | parent | prev | next [-]

I like the chapters thing, a lot of PRs I review should really be like 5 prs so its nice to have it auto split like that.

Do you see a world where it splits them up on the git level?

tasuki 2 hours ago | parent | next [-]

> a lot of PRs I review should really be like 5 prs

Can't you push back on that? I feel like this tool is trying to fix misbehaved colleagues...

ryanjso 2 hours ago | parent [-]

Yeah, but we're a small company and sometimes cut corners to move faster, so if a tool can solve this instead of potentially adding more friction to other engineers I'm all for it.

dean_stratakos a day ago | parent | prev [-]

Yeah that could be useful, especially with the increased popularity of stacked PRs

But I see it working together with chapters, not instead of bc it's still good to see the granularity within a PR

sscarduzio 19 hours ago | parent | prev | next [-]

We have the same problem, and I came up with this:

https://sscarduzio.github.io/pr-war-stories/

Basically it’s distilling knowledge from pr reviews back into Bugbot fine tuning and CLAUDE.md

So the automatic review catches more, and code assistant produces more aligned code.

cpan22 19 hours ago | parent [-]

This is really cool and we definitely have this problem as well. I really like the flowchart deciding on where to put each learning. Will have to try it out!

Do you find that this list of learnings that end up BUGBOT.md or LESSONS.md ever gets too long? Or does it do a good job of deduplicating redundant learnings?

sscarduzio 11 hours ago | parent [-]

Thanks! We have ~1000PRs/year. Seniors are way less than juniors and a lot of knowledge is transferred via pr messages.

The deduplication and generalisation steps really help, and the extra bugbot context ends up in just about 2000 tok.

Global LESSONS.md has less than 20 “pearls” with brief examples

cpan22 an hour ago | parent [-]

Nice! Will try it out

sebakubisz 6 hours ago | parent | prev | next [-]

Can reviewers adjust the chapter splits manually if they disagree with how it grouped the PR, or are the chapters fixed once generated?

cpan22 2 hours ago | parent | next [-]

We're also planning on adding functionality to support some sort of CHAPTERS.md file that lets you specify how you want things broken down!

sebakubisz 43 minutes ago | parent [-]

CHAPTERS.md sounds like a good idea for when the auto-grouping doesn't match the actual structure of the work. Looking forward to seeing it.

dean_stratakos 2 hours ago | parent | prev [-]

We don't support that currently, but would love to see examples where you disagree with the chapters so we can figure out the best interface

You can regenerate the chapters anytime, but it might lead to similar results as the first time

builderminkyu 2 hours ago | parent | prev [-]

The framing of "humans back in control" resonates. A lot of AI tooling right now optimizes for speed over correctness — the assumption being that AI output is good enough to ship. Stage seems to push back on that. What's been the biggest surprise from early users so far?

cpan22 an hour ago | parent [-]

Thanks! Yeah we believe strongly that humans need to be in the code review loop to some extent

I think one thing we've seen from early users that surprised us is how chapters was quickly becoming the unit of review for them as opposed to files - and they've asked us to add functionality to mark chapters as viewed and comment on them as a whole

Another big surprise: now that agents are the ones writing most (if not all) the code right now, we've found that a lot of early users are using Stage to not only review others PRs but also their own PRs, before they have others review it