The RFP asked for “headless flexibility.” The spreadsheet forgot build hours, hosting, and the second engineering team you hire to own the glue.
We priced three recent programmes—Shopify Hydrogen, Medusa (self-hosted), Saleor (cloud tier)—for a mid-catalogue EU merchant. Below is what we actually logged, anonymised. Numbers are directional; your vendors will argue every line. That is the point: argue before you sign.
| Line item | Hydrogen (rough) | Medusa (rough) | Saleor (rough) |
|---|---|---|---|
| Core build (storefront + checkout path) | High | High | Medium |
| Search & merch integrations | Medium | Medium–High | Medium |
| DevOps / upgrades (year one) | Low–Med | High | Low |
| Vendor platform fees | Tied to Shopify | Infra only | Per-seat + usage |
| Time to first production order (our sample) | 9–12 wks | 11–16 wks | 8–11 wks |
Hydrogen piggybacks on Shopify’s payments and ops reality—until you need a flow Shopify does not love. Medusa gives control and sends the invoice as your on-call rotation. Saleor sits in a middle band for teams that want GraphQL commerce without owning every patch.
What the deck leaves out
Content and merchandising UX. Headless means your CMS and PIM actually work, or marketing files tickets forever.
Preview environments for campaigns. If you cannot stage a landing page without a developer, you do not have headless—you have a bottleneck with a fancy name.
Observability on checkout. Separate services mean separate failure modes. We budget for tracing across cart, tax, and inventory from day one.
Where this breaks down
When the brand wants weekly campaign surfaces and the team sized for a quarterly release. When payments and fraud are treated as “Phase 2.”
Our read
Headless is a trade, not a moral upgrade. We pick it when the catalogue, markets, or integrations genuinely outgrow a monolith’s guardrails. Otherwise we keep the monolith, improve the theme, and spend the margin on margin.