I don't run a development shop. I run a multi-product studio. The distinction matters because my output isn't measured in billable hours or tickets closed, but in the number of durable, profitable systems I can keep in the air at once.
When you are a solo builder using AI as your team, your biggest constraint isn't compute or capital—it's context. Every time you switch between different repositories, different deployment pipelines, and different dependency versions, you pay a cognitive tax. For a long time, I paid that tax. I learned the hard way that managing a dozen separate repositories for a dozen small products is a recipe for stagnation.
If you want to scale your output without scaling your headcount, you need a monorepo for solo developer operations. This isn't about following a trend; it's about architecting a system that allows you to ship today and maintain tomorrow without losing your mind.
The Cost of Fragmentation
In the early days of my studio, I followed the standard advice: one repo per project. It felt clean. But as the portfolio grew to five, then eight products, the cracks appeared.
I would find a bug in my authentication logic in Product A, fix it, and then realize Product B, C, and D were all vulnerable to the same issue. I had to manually port the fix across four different environments. I spent more time updating Node versions and fixing broken GitHub Actions than I did building features.
Fragmentation is the enemy of the solo operator. When your code is scattered, your AI agents are blind. They can only see the narrow slice of the project you've pointed them at. By consolidating into a single repository, you provide a unified context that makes agentic engineering actually viable.
The Studio Monorepo Architecture
I use a structure built on PNPM workspaces and Turborepo. It’s not the only way to do it, but it’s the one that has survived my production requirements. The goal is to treat your products as thin wrappers around a core set of shared engines.
The Shared Package Layer
In a proper monorepo for solo developer workflows, the \packages/\ directory is where the real value lives. I break mine down into specific domains:
- \
packages/ui\: A unified design system. When I want to add a new button style or a navigation pattern, I do it once. Every product in the studio gets the update instantly.
- \
packages/db\: A shared Prisma or Drizzle schema. Even if products use different databases, the patterns for connecting, migrating, and querying remain consistent.
- \
packages/ai\: This is where VERA, my custom agent orchestration layer, lives. By centralizing my AI prompts, MCP servers, and tool definitions, I can give every product in my portfolio the same level of intelligence without rewriting the integration code.
The Apps Layer
Your actual products live in \apps/\. Because the heavy lifting is done in the shared packages, spinning up a new MVP becomes a matter of hours, not days. You import your UI, your auth, and your AI logic, and you focus entirely on the unique value proposition of that specific tool.
