Every project is a new stack
Different bundlers, ORMs, and hosting per client means no shared muscle memory and no reusable work.
Agency work punishes variety: each project with its own assembly of libraries is a maintenance contract nobody priced. A framework with conventions means the fifth project starts where the fourth finished, and the client inherits something documented rather than something bespoke.
The work that arrives whether you planned for it or not.
Different bundlers, ORMs, and hosting per client means no shared muscle memory and no reusable work.
A codebase only its authors understand becomes an open-ended support obligation.
The brochure site needs a shop, then a portal, then an app, and each is a different framework in a typical stack.
The hours before the first feature are the least billable and the most repeated.
All of it in the same install, typed against the rest of your application.
app/, config/, resources/, routes/, and tests/ are the same shape on every project, so context switching is cheap.
A site, a store, a CMS, an API, and a dashboard are all the same install, so scope growth is not a re-platform.
Actions, components, and skills carry between projects, and app/Skills/ documents the client-specific parts.
config/cloud.ts describes the deploy in the repository, so the client owns their AWS account and the recipe for it.
Generated docs, an OpenAPI spec, and tests come out of the project rather than being written for the invoice.
buddy-bot keeps client projects current on a schedule instead of in an emergency.
Every one of these ships in the same install. Follow one to see what it covers.
Buddy scaffolds, runs, and ships this the same way it does the rest of the app.
Projects of this shape usually grow into one of these.