The Rails Way has more room in it than most people think.
One task-management app, built twenty-eight ways: from a single fat controller to fully isolated bounded contexts, using nothing but what Rails ships with. No gems. No imported architecture.
So you reach for a service layer. Then interactors. Maybe a full hexagon: ports, adapters, an architecture borrowed from outside Rails. Sometimes that's the right call. Often it's complexity you relocated instead of removed.
There's a path through plain Rails that runs further than most people believe, and almost nobody walks the whole thing.
Twenty-eight versions of the same app. Each applies one rule, using only the framework's own tools. The same behavioral test suite passes at every step, so nothing here is hand-waved. And the code-quality score climbs from 79 to 94 as the architecture deepens.
That's the part nobody expects: the structure is what raises the number. The branches show you exactly how, in real diffs.
AI made writing code cheap. Judging it is still the hard part, and so is loading it. Every branch puts a real number on what its design costs a coding agent: a fat controller that makes an agent read 277 lines to fix 40, an engine split that cuts the working set by 60% to 77% but adds boundaries to cross. The clarity that helps you helps the machine. Almost nobody measures this. Here it's measured on all twenty-eight.
Open 1A, the fat controller we all recognize, then watch it grow up one disciplined step at a time. Every branch is a deep dive, not a changelog: the one rule, the before-and-after numbers, the real code, the agent's view, and why the next branch has to exist.
Or take the full map: the whole gradient, seven families, twenty-eight rules, every trade-off named out loud.
The individual branches are not the argument. The arc is.
See all twenty-eight versions →
🦾 Built by Rodrigo Serradura. A gift to the community: explore it, learn from it, challenge it.