One Repo to Rule Them All
We used to run separate repos for frontend and backend. It made sense at the time. Independent teams, independent deploys, independent velocity. That was the old math. The new math is different.
In the AI era, everything is end-to-end. When we're building a feature with AI, it needs to see the full picture — the API, the UI, the data layer, the types that connect them. Two repos means two contexts, two sets of skills, two memory spaces. The AI is working with one hand tied behind its back.
And the friction compounds. Setting up a synced worktree across both repos for end-to-end development is already painful. Then you're provisioning ports, aligning environments, making sure everything talks to everything. Every hour spent on repo choreography is an hour not spent building product. So we ripped the bandaid. We moved everything into a monorepo.
Yes, we lost git history. We made peace with that. The old repos still exist for reference — AI can cross-reference them when it needs archaeological context. But the productivity gain is immediate and dramatic. One repo, one context, one worktree. AI tools can see the full stack in a single session. Shared skills, shared memory, no stitching required.
The separate repo model was built for a world where the bottleneck was human coordination. In that world, isolation was a feature. In the AI-assisted world, isolation is a tax. Every boundary you put between your code is a boundary your AI has to work around.
When the current shifts, stop swimming against it.
Hold on to the past or build the future. Your customers don't care which commit it came from.