3 MIN READ

The Real Cost of Headless Commerce: A TCO Model You Can Argue With

Platform fees are the visible cost and rarely the largest. A three-year model comparing hosted SaaS against self-hosted Medusa, including the lines people leave out.

BY SHUBHAM VERMAUPDATED
Illustration for “The Real Cost of Headless Commerce: A TCO Model You Can Argue With” — Comparison

Most platform comparisons stop at the monthly fee, which is the one number that reliably understates the difference. Apps, transaction surcharges, engineering time and the cost of things you cannot build all move the answer more than the plan price does.

Here is the model we use with clients, with the assumptions exposed so you can disagree with them.

The lines that belong in the model

LineHostedSelf-hosted
Platform feePlan, by tierNone
Transaction surcharge0–2% if not using the native gatewayNone
Apps and extensions$200–3,000/moSome replaced, some self-hosted
InfrastructureIncluded$100–500/mo
Engineering — buildTheme workFull build
Engineering — maintenanceLowRetainer or in-house
Upgrades and patchingFreeYours
Opportunity costFeatures you cannot buildFeatures you must build

The last row is the one that decides most real cases and never appears in a comparison table, because it is specific to your business.

Three years, three revenue levels

Assumptions: a DTC store, one market, moderate app usage, engineering at $75/hour blended.

$1M GMV

HostedSelf-hosted Medusa
Platform$948—
Transaction surcharge——
Apps$4,800$600
Infrastructure—$2,400
Build (amortised over 3 years)$5,000$20,000
Maintenance$2,000$18,000
**Annual total****~$12,700****~$41,000**

Hosted wins decisively. At this level, self-hosting is buying flexibility you have no way to exploit.

$5M GMV

HostedSelf-hosted Medusa
Platform$4,788—
Transaction surcharge (external gateway)$25,000—
Apps$18,000$2,400
Infrastructure—$4,800
Build (amortised)$10,000$30,000
Maintenance$8,000$30,000
**Annual total****~$65,800****~$67,200**

Roughly level. The decision here is not financial — it is whether you need capabilities the platform cannot provide.

Note the surcharge line. It only applies if you cannot use the platform's native gateway, which is exactly the situation for restricted categories. Remove it and hosted wins; it is the single largest swing factor in the model.

$15M GMV

Hosted (enterprise tier)Self-hosted Medusa
Platform$27,600—
Transaction surcharge$30,000—
Apps$36,000$6,000
Infrastructure—$12,000
Build (amortised)$20,000$40,000
Maintenance$20,000$60,000
**Annual total****~$133,600****~$118,000**

Self-hosted pulls ahead, and the gap widens with every additional million because one side scales with revenue and the other does not.

What the model leaves out

Four things, each capable of dominating the result:

Opportunity cost. If a platform limitation is costing you a wholesale channel, a subscription product or a market, that number is larger than everything above. Quantify it before comparing fees.

Risk. For a merchant who can be deplatformed, the cost of losing the store is not a line item — it is the business. This makes the comparison irrelevant, not close.

Team. An organisation without engineering cannot run self-hosted at any price. The maintenance figures assume competence that must exist somewhere.

Time. Self-hosting takes two to four months before it earns anything. If you need to launch next month, that settles it.

How to use this

Fill in your own numbers, in this order:

  1. Actual app spend. Export twelve months of invoices. It is usually higher than people remember.
  2. Actual transaction fees. Including any surcharge for an external gateway.
  3. Honest engineering time. Including the hours currently spent working around platform limits.
  4. The named constraint. What can you not do, and what is it worth?

If step four is blank, stay where you are. Cost alone rarely justifies a migration, and a migration justified only by cost tends to underdeliver.

The migration cost nobody budgets

Three lines that appear in every real project and almost no estimate:

Parallel running. One to three months paying for both platforms. At $2,000 a month that is $2,000–6,000 nobody planned for.

Post-launch stabilisation. Two to four weeks of fixes after cutover. It is not scope creep; it is the normal shape of a replatform, and pretending otherwise means the team is doing it while also starting the next project.

Institutional knowledge. Your team knows the old platform's quirks. For three to six months they are slower on the new one. Real, and rarely priced.

Add roughly 15% to any migration estimate for these. Estimates that omit them are not cheaper projects, only less honest ones.

When the model says migrate and the answer is still no

Three situations where the arithmetic favours self-hosting and it remains the wrong call:

No engineering owner. If nobody's job description includes this application, the model is wrong because the maintenance line is fiction.

A major commercial event within six months. Do not replatform in the two quarters before your peak season. The savings arrive next year; the risk arrives in November.

The team is already at capacity. A migration is not something a fully committed team absorbs. Either something else stops or the migration takes twice as long and costs more than the model says.

Cost models describe steady states. Migrations are transitions, and transitions are where projects fail.

Modelling it yourself

Fill this in with real invoices rather than estimates. Twelve months of actuals, not a memory of the plan price:

text
Current platform
  Plan fee (annual)                     ____
  Transaction fees and surcharges       ____
  App subscriptions (all of them)       ____
  Agency or contractor retainer         ____
  Internal engineering time             ____
  Total                                 ____

Self-hosted
  Infrastructure (annual)               ____
  Third-party services replacing apps   ____
  Build cost, amortised over 3 years    ____
  Engineering retainer or salary        ____
  Total                                 ____

  Named constraint, and its annual cost ____

The final line is the one that decides it. If it is blank, the totals above are an interesting comparison rather than a business case.


We run this model with clients before quoting anything, because sometimes the answer is "do not migrate". Ask for the spreadsheet.

Frequently asked questions

Is headless commerce cheaper than a hosted platform?

Below roughly $3M GMV, no — hosted is cheaper once engineering time is priced honestly. Above roughly $10M with a heavy app stack, usually yes, because hosted cost scales with revenue while infrastructure scales with traffic.

What is the biggest hidden cost of a hosted platform?

Apps. They routinely cost two to four times the plan fee, and a large share of them exist to work around platform limitations rather than to add genuine capability.

What is the biggest hidden cost of self-hosting?

Ongoing engineering. Infrastructure is cheap and predictable; the recurring cost is having someone competent responsible for the application indefinitely. Budget a retainer or a role, not a one-off build.

At what revenue does Medusa become cheaper than Shopify?

Typically between $3M and $10M GMV, with the range driven mostly by app spend and whether you pay a surcharge for using an external payment gateway. Model it with your own invoices rather than trusting a benchmark.

Does going headless reduce maintenance?

No, it moves it. You stop maintaining plugin compatibility and platform workarounds, and you start maintaining infrastructure, dependencies and your own code. Total effort is similar; what changes is that the effort now produces features rather than workarounds.

Should cost be the reason to migrate?

Rarely on its own. The migrations that succeed are justified by a capability constraint or a platform risk, with cost as a supporting argument. A migration justified only by fees tends to disappoint, because the savings arrive later than the disruption.

[ Keep reading ]