Swimming (in code) and nugit
I wish someone else made this
The software development cycle has felt so much more painful in the past year relative to what its felt like in the past. There have always been pain points that were acknowledged and seen as the cost of doing business. Complicated merge conflicts, lack of proper testing coverage, missing documentation, etc. AI coding seemed to have solve a few of these things just based on the ease of generating more stuff. But in turn, it has led to a dramatic increase in how much code needs to be reviewed, both by the creator but also by people who are reviewers on Pull Requests (PRs).
We don’t have to discuss the sub 90% uptime
The existing GitHub UI for PRs has largely been unchanged for well over a decade. It works, it’s familiar to people, it’s inoffensive. But it’s just not enough anymore.
Picture a typical week on a fast-moving software startup team—the sort people would call “scrappy.” You’re clocking in Monday morning and building out a feature corresponding to a ticket, test it, and set up the PR by lunch. You ping your manager to review it and they say they’ll review it ASAP. Cool. Time to start the next ticket which involves building a new feature on top of what you built this morning. You knock it out before you clock out for the day and you ping your manager again. They’ll review it ASAP. Fast forward to tomorrow and by end of day you’ve knocked out another two features, each feature extending from the previous.
It’s now the middle of the week and your manager can finally look at your PRs. They find an issue with a function you wrote in the first PR. They message you on slack saying they want the inputs and outputs changed slightly. But PRs 2-4 that you wrote all rely on this function.
Another message comes in and they say “oh also there’s merge conflicts.” Someone else got their PR in before you. Maybe they changed some of the same files? Worse they changed the same functions. And now you have to resolve conflicts for your entire PR stack. You’ve gone from finishing 4 tickets before Wednesday to getting nearly nothing done.
It’s a table flipping moment. Why couldn’t your manager just review faster?
Turns out the manager has been neck deep in PRs from the rest of your team and they’re just barely staying afloat. One of your teammates is a new engineer fresh from college. They don’t even separate different features to different PRs yet. They’re all combined in one. It’s a 4000 line diff. Time your manager spends reviewing code now directly correlates with dissatisfaction with their job and a desire to leave the role.
No one wins in this situation. I’m also not making a novel observation.
Graphite is attempting to solve these issues, but they are no longer opensource. GH Stack is open source but it breaks the usage of the Github UI so utilizing the tool requires a commitment of the whole team.
To fill the void and solve my annoyances, I made something called nugit that builds on top of Github with the goal of integrating seamlessly with existing workflows, so I can benefit from using it on projects I care about. Its open source so anyone can fork it (I won’t be accepting external PRs). Follow its development and my shilling of it here.

