neesh Inc.
Software ArchitectureProduct StrategyScalable Business

The One-Codebase Trick

A system copied for every client, office or market makes you pay for every fix once per copy. One codebase configured per client pays once, provided you build for one client before you generalize.

Shopify runs t-shirt sellers and furniture makers on the same code, configured for each shop. One codebase, configured per client, means one fix per bug; a copy per client means one fix per copy.


The same arithmetic applies inside a firm. A system copied for each office, market or large client is several systems to maintain, and every fix, release and security patch is paid for once per copy.

What the Copies Cost

Copying a system for each new client feels like growth. Ten clients become ten codebases, ten deployments and ten bug lists. Then a bug appears: you fix it in client A’s copy, forget to carry it to client B, and client C never gets it. Six months later there are three versions of what was meant to be one product, each needing a developer who knows “the way things work here”, and every release is a risk taken once per copy.

One Codebase, Configured

Copies: 10 clients = 10 custom codebases
10 codebases, 10 deployments, 10 bug lists. Every fix applied by hand per client; every feature negotiated per contract. Illustrative: 200 hours a month of maintenance, and the team's time goes on keeping the past alive.
Platform: 10 clients = 1 codebase + 10 config files
1 codebase, 1 deployment pipeline, 1 bug list. Every fix and feature reaches every client at once. Illustrative: 20 hours a month of maintenance, and the team's time goes on what comes next.

The hours are illustrative; the point is that the work stops being repeated for every client.

What Configuration Means

Configuration is a design decision made in advance: which parts of the system are the same for every client, and which vary.

1

Same Core Engine

Intake, processing and output: identical for every client.

2

Industry Config

Terminology, categories, instructions and workflow rules for each industry.

3

Integration Config

Which systems each client connects: email, CRM, storage, calendar, accounting, ERP.

4

Branding Config

Logo, colour palette, tone of voice and domain, with no code changes.

5

Pricing Config

Features per pricing tier, usage limits, and the modules each plan switches on.

The core engine does not know which client it is serving. It knows only the configuration it was given at startup, and that separation is the whole trick.

Adding a Connection Without a Rewrite

Configuration handles what varies per client; connectors handle what varies per data source. Every source (email, cloud storage, CRM, ERP) plugs in through the same interface of two methods, list_documents() and fetch_document(). Adding Google Drive means writing one connector and switching it on in the configuration of the clients who need it, with no change to the pipeline.

When Not to Do This

Building a platform before a product has its own trap: you design the configuration around imagined differences and under-deliver on what the first client needs.

If your firm already runs several copies, folding them back into one is done piece by piece, starting with the core they share, while the copies keep running. Every fix after that is paid for once.

How many copies of the same system does your firm maintain?

Talk Platform Strategy