On this page
- The Core Question: Share or Fork?
- When to Share: The Power of a Unified Stack
- What We Typically Share
- When to Fork: Embracing Distinct Needs
- Reasons a Product Might Need Its Own Stack
- Making the Decision: A Framework for Multi-Brand Studio Operations
- 1. User Experience and Core Functionality
- 2. Technical Complexity and Dependencies
- 3. Team Autonomy and Development Velocity
- 4. Long-Term Vision and Scalability
- Maintaining Sanity in a Hybrid Model
Running a studio that builds and operates multiple digital products is a bit like tending a garden with many different plants. Some thrive in the same soil, sharing water and light. Others need their own distinct plots, specific nutrients, and unique care. For us, this often boils down to a fundamental question: when do we build on a shared technical foundation, and when do we fork a new, dedicated stack for a product?
This isn't just a technical decision; it's a strategic one that impacts everything from development speed to long-term maintenance. Getting it right is crucial for efficient multi-brand studio operations.
The Core Question: Share or Fork?
At its heart, the dilemma is about leverage versus specificity. A shared stack promises efficiency: build once, deploy many times. It means common tooling, shared knowledge, and a unified approach to operational tasks. But products, by their nature, often diverge. They serve different audiences, solve distinct problems, and sometimes require unique technical capabilities that don't fit neatly into a shared mold.
We've found ourselves in this exact spot many times, especially as our portfolio of products has grown. The temptation to reuse everything is strong, but so is the need to let each product breathe and evolve on its own terms.
When to Share: The Power of a Unified Stack
Sharing a technical stack across multiple products within a studio can be incredibly powerful. It's not about forcing square pegs into round holes, but about identifying the common ground where shared infrastructure genuinely adds value without compromising product integrity.
What We Typically Share
We look for components that are largely generic and provide foundational services, regardless of the specific product's domain. This often includes:
- Authentication and Authorization: Every product needs to know who its users are and what they're allowed to do. A robust, centralized identity management system saves immense development time and ensures consistent security practices across our portfolio.
- Billing and Subscription Management: Handling payments, recurring subscriptions, and invoicing is complex. A shared service for this means we only solve these challenges once, integrating it as a module into each product that needs it.
- Analytics and Monitoring: Understanding how users interact with our products and ensuring their health is universal. A common logging and analytics pipeline allows us to aggregate data, spot trends across products, and maintain consistent operational visibility.
- Deployment Pipelines and Infrastructure as Code: How we get code from development to production, and how we provision the underlying resources, can often be standardized. This means faster, more reliable deployments and less operational overhead for each new product.
- Core Design System Components: While each brand has its unique visual identity, many UI elements (buttons, forms, navigation patterns) share underlying functional requirements. A shared library of accessible, performant components, styled appropriately for each brand, accelerates front-end development and ensures a consistent user experience within each product's ecosystem.
When we identify these commonalities, we invest in building them as robust, well-documented services or libraries. This approach allows our product teams to focus on the unique features that differentiate their product, rather than reinventing the wheel for every foundational piece. It's a cornerstone of effective multi-brand studio operations.


