Architecture
Scaling a Multi-Platform App Suite with Turborepo
How XAppNova keeps a small portfolio of apps, extensions, and marketing surfaces aligned without turning maintenance into a full-time job.
The small-app paradox
Small apps are supposed to stay simple, but a portfolio of small apps can become operationally messy very quickly. Every product needs landing pages, screenshots, legal pages, support copy, analytics wiring, and release housekeeping. If each app lives in its own disconnected setup, the overhead starts to outweigh the product itself.
That is the problem we wanted to avoid at XAppNova. We build focused tools across different surfaces: Safari extensions, Chrome extensions, iPhone apps, macOS utilities, and a marketing site that explains them all. The apps are intentionally small. The system around them cannot be chaotic.
Why we chose a monorepo
We use Turborepo to keep the website, shared UI, content contracts, and analytics definitions in one place. The goal is not scale for its own sake. The goal is to remove the repeated work that normally accumulates around a product portfolio.
The monorepo gives us one predictable place for design tokens, one publishing contract for app metadata, and one build graph that understands what actually changed.
- Shared design tokens live in `packages/ui` so the brand does not drift between pages and components.
- App metadata lives in `packages/content/data`, which means product copy, screenshots, and store links have a single source of truth.
- Validation scripts catch broken content before it reaches the site.
- Turborepo only rebuilds the packages that are affected by a change.
What this changes day to day
The practical benefit is not abstract architecture purity. It is speed with fewer mistakes. Adding a new app becomes a content task plus screenshots, not a mini-site rebuild. Updating a store URL or app tagline happens once and then flows everywhere it is used.
This also makes product quality easier to defend. When the website, legal pages, and app detail pages all read from the same content model, inconsistency becomes much more visible.
The real payoff
For a small team, consistency is leverage. A shared system lets us spend more time on the actual product behavior and less time fixing the same issue in three places.
That is the core reason the stack matters to us. We are not trying to look like a big software company. We are trying to keep a compact app suite maintainable without lowering the quality bar.