Skip to main contentSkip to main content
Navigating Multi-Brand Studio Operations: Share or Fork?

Studio Notes

Navigating Multi-Brand Studio Operations: Share or Fork?

Running a multi-brand studio means tough choices about your tech stack. We explore when to build on shared foundations and when to create distinct product environments for effective multi-brand studio operations.

Justin Tsugranes6 min read

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.

When to Fork: Embracing Distinct Needs

Despite the clear advantages of sharing, there are times when a product simply needs its own dedicated technical stack. This isn't a failure of the shared model; it's an acknowledgment of genuine divergence.

Reasons a Product Might Need Its Own Stack

  • Unique Performance Requirements: Some products might demand extremely low latency, high throughput, or specialized data processing that would be difficult or inefficient to achieve within a generalized shared environment. Trying to optimize a shared stack for an outlier product can degrade performance for others.
  • Highly Specialized Data Models or Storage: If a product's core data structures are fundamentally different from anything else in the portfolio, or if it requires a specific type of data store (e.g., a graph database, a time-series database) that isn't part of the shared offering, a fork might be necessary.
  • Regulatory or Compliance Needs: Products operating in highly regulated industries might have specific data residency, security, or auditing requirements that are best met by an isolated environment.
  • Significant Third-Party Integrations: If a product relies heavily on a unique set of external services or APIs that introduce substantial complexity or dependencies, isolating it can prevent those dependencies from affecting other products.
  • Brand Differentiation and User Experience: While design systems can be shared, the core user journey and interaction model might be so distinct that trying to fit it into a shared application framework becomes a constant battle against the grain. Sometimes, a fresh start allows for a more natural, unconstrained product experience.

Forking a stack means accepting increased operational overhead. You're now maintaining a separate codebase, separate deployment pipelines, and potentially different infrastructure. The decision to fork is never taken lightly; it's a calculated trade-off where the benefits of specificity and autonomy outweigh the costs of duplication.

Making the Decision: A Framework for Multi-Brand Studio Operations

So, how do we decide? It's less about a rigid checklist and more about a thoughtful evaluation of several factors:

1. User Experience and Core Functionality

  • How similar are the core user journeys? If users expect vastly different interactions or if the product solves a fundamentally different problem, a shared application layer might become a hindrance.
  • Does the product require unique features that would be difficult to abstract? If the core value proposition relies on highly specialized logic, trying to generalize it into a shared service can lead to over-engineering or awkward compromises.

2. Technical Complexity and Dependencies

  • What are the unique technical requirements? Does it need a specific type of data processing, real-time capabilities, or integrations that are truly distinct?
  • How much custom code would be needed on top of a shared stack? If the custom layer becomes overwhelmingly large, the benefits of sharing diminish rapidly.

3. Team Autonomy and Development Velocity

  • Would a shared stack slow down a specific product team? If a team constantly has to wait for changes to a shared component or navigate complex shared dependencies, their velocity will suffer.
  • Does the product have a distinct release cadence or testing strategy? Sometimes, the need for independent release cycles necessitates a separate environment.

4. Long-Term Vision and Scalability

  • What's the growth trajectory for this product? Will its unique needs become even more pronounced over time?
  • What are the operational costs of each approach? Consider not just initial build costs, but ongoing maintenance, security patching, and scaling efforts.

This isn't a one-time decision. As products evolve, what was once a good candidate for sharing might need to fork, and vice-versa. We regularly revisit these choices, ensuring our technical architecture continues to serve our products and our studio's goals.

Maintaining Sanity in a Hybrid Model

Most studios, including ours, end up with a hybrid model: a core of shared services supporting a mix of shared and forked product stacks. Managing this requires discipline:

  • Clear Boundaries: Define what belongs to the shared core and what is product-specific. Document these boundaries rigorously.
  • Robust APIs: Shared services should expose well-defined APIs, allowing products to integrate without needing to understand the internal workings of the shared component.
  • Communication: Foster open communication between teams working on shared services and those building specific products. Changes to the core can impact many, so transparency is key.
  • Observability: Implement consistent monitoring and logging across all products, regardless of their stack, to maintain a holistic view of system health.

Ultimately, the goal of multi-brand studio operations is to build great software efficiently. Sometimes that means leveraging common ground, and sometimes it means giving a product the space to grow uniquely. The art is in knowing the difference.

See what we've made — totalventures.io

Weekly Briefing

The studio briefing.

What we’re building across the portfolio, every Monday.

JT

Written by

Justin Tsugranes

Founder, Total Ventures

Solo-founder building and operating a multi-brand product studio with AI agents. Writing about building, operating, and shipping.

ShareXLinkedInFacebook
#studio operations#product development#tech strategy#architecture#scaling