One platform, many sites: a hub-and-spoke web fleet

Several organizations needed production websites: news, marketing, data, education and community. Each needed content management, responsive design, SEO, analytics and an admin dashboard. Building each one from scratch meant weeks of duplicated work, and a fix in one site had to be ported by hand to the others.
What I built
A hub-and-spoke platform with reusable packages and a scaffold command.
- The scaffold generates a production-ready application in minutes, with routes, pages, components and dashboard configured by product type.
- Three shared packages: core (24 modules for auth, content, media, types, config and logging), agents (the content pipeline) and ui (49 components).
- Packages are published to GitHub Packages. Renovate opens pull requests to update every site.
- A contributor workflow moves content from draft to pending to published under a 6-role permission hierarchy.
- Husky runs lint, build and test before every commit on every repository.
- Semgrep, Nuclei and Gitleaks scan every site every 12 hours.
What came of it
A new site deploys in minutes. Shared code is maintained once and distributed automatically. Non-technical contributors publish through the dashboard without a developer. The fleet carries 2,276 test files. Each site still works as an independent application.


