03-17-2026
Monorepos
Think of it like a shared apartment pantry. Instead of every roommate buying their own olive oil, everyone pulls from the same shelf: one repo, shared packages. Each project, now rehomed in a subdirectory, reaches in and grabs what it needs instead of each keeping their own copy.
The site is now a monorepo. I first came across the concept at Vercel last year. Now, I finally get to set up my own.
This web app (floguo.com) lives in apps/web, future apps in apps/, shared utilities and config in packages/, all wired together with pnpm workspaces. Moving everything over wasn't hard, just a few prompts with Claude Code.
This setup feels a bit redudant given that there's only one app. But the structure has room for a component library and experiments that would otherwise drift into their own separate repos. Having them in one place means shared code and tokens instead of duplicating them across projects.
I'll continue to cultivate my little internet garden.
One gotcha: after moving everything intoapps/web, my builds kept failing. Vercel still pointed at the repo root โ which no longer hadnextin itspackage.json. Fixed this via Vercel project dashboard: Settings โ General โ Root Directory โapps/web.
Further reading
- Turborepo Docs โ the build system I'm using; great intro to caching and task pipelines
- monorepo.tools โ side-by-side comparison of every monorepo tool (Turborepo, Nx, Lerna, Bazel, etc.)
- pnpm Workspaces โ how pnpm handles multi-package repos
- Why Google Stores Billions of Lines of Code in a Single Repository โ the classic ACM paper on monorepos at scale