When a theme beats a rebuild
If customising your existing theme gets you most of the value, we will say so — it is a smaller engagement and usually the right call.
QUOTED TO SCOPE, IN WRITING
Every engagement is quoted after a scoping call, so you pay for the work your store actually needs. No enterprise minimum, no long lock-in, and a fixed scope in writing before any contract is signed.
IN SHORT
We could publish a table with three tiers and a number in each. Most agencies do. It would be the most visited page on this site and the least useful, because the number would be wrong for almost everyone who read it.
Two migrations that look identical from outside — same platform, similar catalogue, same category — can differ by a factor of three once you count what is actually being rebuilt. One has four integrations and a clean data model. The other has eleven, three of which nobody can explain, and eight years of attribute drift.
So instead of a number that would need caveating into meaninglessness, here is exactly what we ask and how the quote gets built. Four questions, a written scope, and a fixed price against it.
Catalogue size and complexity. Not just SKU count — variant structure, how much product data lives in places it should not, and whether the catalogue has been migrated before.
Integrations. The single biggest variable. ERP, PIM, 3PL, subscriptions, tax, loyalty — each one is a piece of engineering with its own failure modes. This is where identical-looking projects diverge most.
Storefronts. One store, or one per region. Multi-storefront work is not linear — the second is cheaper than the first, but it is not free.
How much design exists. Finished Figma files quote differently from a brand guide, which quotes differently from nothing at all.
| Fixed-scope project | Monthly retainer | |
|---|---|---|
| Shape | A defined piece of work with an end | A block of senior hours each month |
| Typical length | 8 to 20 weeks | Month to month, ongoing |
| Priced | Fixed against a written scope | Fixed monthly, sized to the roadmap |
| Scope change | Quoted as it arises | Absorbed or re-planned in the next cycle |
| Commitment | The project | No notice period |
| Right for | Migrations, new builds, defined projects | Stores that keep evolving |
The third way is the free store audit, which is how most engagements actually start. It costs nothing, carries no obligation, and is written so you can act on it without us.
Five stages. You see a fixed number before you commit to anything.
Most brands start with the free audit: a senior engineer reviews your storefront, theme performance and checkout and sends a prioritised list within three business days. If you already know what you want built, skip to the scoping call.
Catalogue size, integrations, storefront count, and how much design already exists. These are what actually move a number, and we would rather ask them than guess and revise later.
A written scope listing what is included, what is explicitly not, and where the assumptions are. For migrations this includes the extension-by-extension replacement plan, which is what makes an otherwise open-ended job quotable.
A price against that scope, in writing, before any contract. If we have missed something, that is on us, not a change request.
Scope changes get quoted as they arise. You approve them or you do not — nothing appears on an invoice that you have not seen first.
If customising your existing theme gets you most of the value, we will say so — it is a smaller engagement and usually the right call.
Under roughly 10,000 sessions per variant per month, split testing produces noise. We will run a research-led programme instead, which costs less.
If the market has solved your problem well and maintains it, buying is cheaper than anything we could build.
If hours keep rolling over, we reduce the block rather than bill for capacity you are not using.
Because a number without your catalogue size, integration count and storefront count would be fiction, and you would quite reasonably hold us to it. Two migrations that look identical from outside can differ by a factor of three once you count the integrations. We publish the model instead, and give you a fixed number once we have asked four questions.
It is quoted after a scoping call. The drivers are catalogue size, how many integrations need rebuilding, and how many storefronts you run — not the source platform on its own. A typical migration runs 10 to 16 weeks from discovery to launch, and you get a fixed-scope quote in writing before committing.
Also quoted to scope. Most builds run 10 to 16 weeks, and the largest cost variables are template count, catalogue complexity and integrations. If you already have designs, a Figma to Shopify build is quoted directly from the files.
Retainers are fixed monthly blocks of senior development hours, sized against your roadmap rather than a standard package. They run month to month with no long lock-in, and unused hours roll into the next cycle. If hours keep rolling over, we reduce the block.
No enterprise minimum. We work with mid-market DTC and B2B brands that have outgrown a small dev shop but do not need an agency with a six-figure floor. If a piece of work is too small to be worth a project, it usually belongs in a retainer.
Yes, and there is no obligation. It takes a senior engineer a few hours and it is written so any competent Shopify developer can execute it — including your own team.
NEXT STEP
A senior Shopify engineer reviews your storefront, theme performance and checkout, then sends a prioritised list of fixes within three business days. No pitch deck, no obligation, no cost.