Fixed scope
Fixed price
against a written scope
- Written scope and acceptance criteria up front
- Fixed price against that scope
- Staged delivery with review points
- Change requests priced separately, never absorbed silently
We are a Shopify Plus Agency specializing in custom development, B2B, checkout extensibility, ERP/CRM integrations, and retained support for scaling brands.
Book a Free Consultation →Hydrogen and Oxygen, or the Storefront API with your own framework. Headless buys you control over rendering, routing and composition — at the cost of owning infrastructure the platform used to hand you for free. We will tell you when that trade is worth making, including when it is not.
Headless is sold as a performance upgrade. It is really an architectural trade: you gain total control over the front end and take on rendering, caching, deployment, previews and a second codebase that Liquid gave you for nothing.
Headless earns its cost when you need rendering Liquid cannot do — a genuinely app-like interface, content composed from several systems, a storefront serving more than one brand or channel from one codebase, or a front end your in-house engineers need to own in a framework they already work in.
It does not fix a slow store. A well-built Liquid theme with a disciplined app stack will out-perform a careless Hydrogen build, and cost a fraction to run.
See the trade-off
Caching strategy, ISR or SSR decisions, preview environments, a deployment pipeline, error budgets and observability — none of which exist as your problem on a Liquid theme.
The theme editor also goes away. Merchandisers lose in-context editing unless you rebuild it, which is the single most underestimated cost of a headless migration and the reason some of them get quietly reversed.
Or build it in Liquid
Shopify’s own headless primitives first. Nothing proprietary, nothing that traps you.
Shopify’s React framework for custom storefronts, built on Remix — with the Shopify-specific caching and analytics already wired in.
Shopify’s global hosting for Hydrogen. Deploys, preview environments and edge rendering without you running infrastructure.
The GraphQL API underneath it all. If Hydrogen is not the right framework for your team, the same data is available to Next, Nuxt, Astro or anything else that speaks GraphQL — the decision is reversible.
Login, orders, addresses and payment methods on a headless front end, using Shopify’s own authentication rather than a bespoke identity system you then have to secure.
Structured content authored in Shopify and queried by the storefront, so editors are not sent to a separate CMS for every change.
LCP under 2.5s, INP under 200ms, CLS under 0.1. Headless makes these achievable, not automatic.
Beyond the storefront itself, these are the pieces that decide whether it is maintainable.
Routing, rendering strategy, cart and checkout hand-off, search and filtering — built to be read by whoever maintains it next.
Metaobjects and metafields designed so editors work in Shopify, not in a spreadsheet handed to a developer.
Which routes are static, which stream, which revalidate and how long anything is allowed to be stale. Get this wrong and headless is slower than the theme it replaced — this is where the performance actually comes from, not from React.
Going headless takes the theme editor away. We replace it deliberately — preview deployments, structured content in Shopify, and content surfaces your team can change without a pull request. Skipping this is how headless projects get reversed.
Error tracking, real-user monitoring and alerting, because a headless storefront can fail in ways a theme cannot.
Documented architecture and decisions, so your engineers can own it or another agency can pick it up.
This is the honest version. We build both, and we would rather talk you out of the wrong one now than rescue it later.
| Liquid theme | Headless storefront | |
|---|---|---|
| Build cost | Lower | Substantially higher |
| Running cost | Included in Shopify | Hosting, monitoring, maintenance |
| Ceiling on the front end | The theme architecture | Effectively none |
| Merchandiser editing | Native theme editor | Only what you build for them |
| App ecosystem | Everything works | Theme-app-extension apps mostly do not |
| Time to change copy | Minutes, in the editor | A deploy, unless you built for it |
| Performance ceiling | High if disciplined | Higher, if you get caching right |
| Best when | Almost every store | App-like UX, multi-brand, or an in-house front-end team |
7 stages. Open any one of them.
The stage where we sometimes say no.
We look at what you need the front end to do that Liquid cannot, and what your team can maintain. If a theme is the better answer we will say so before you have spent anything.
The decisions that determine performance.
Framework choice, routes, rendering strategy per route, caching and revalidation, and the content model. Written down and agreed before any feature work.
Designed for the interactions headless unlocks.
If the interface is not doing something a theme could not, the architecture is not paying for itself. Design should reflect that.
Deployed previews from week one.
Storefront application, content model and integrations, on preview deployments you can click through as they land.
Including failure modes a theme does not have.
Cross-browser and device coverage, accessibility, Core Web Vitals on real routes, plus API failure, timeout and rate-limit behaviour.
With a way back.
Redirects, analytics, structured data, DNS cut-over and a rollback path — which on headless means a deployable previous version, verified before launch.
Someone has to run this.
Framework and dependency updates, monitoring, and iteration. Either your engineers own it with our documentation, or we retain hours for it.
Three shapes, depending on how well defined the work is. Every one starts with a scoped written proposal — no work begins on a verbal estimate.
Fixed scope
Fixed price
against a written scope
Retainer
Monthly
block of hours
Time & materials
Tracked time
billed as used
Rates are quoted against a written scope rather than published as a tier, because the same service costs very different amounts on a five-template store and a five-hundred-template one.
Headless suits some categories far more than others. If your product page is a product page, a theme is probably the answer.
Headless earns its cost when you need rendering Liquid cannot do — a genuinely app-like interface, content composed from several systems, one codebase serving multiple brands or channels, or a front end your in-house engineers need to own in a framework they already work in. It is an architectural trade rather than a performance upgrade: you gain total front-end control and take on caching, rendering, previews, deployment and observability.
Not by itself. Headless raises the performance ceiling; it does not raise the floor. A carelessly built Hydrogen storefront with bad caching is slower than a disciplined Liquid theme and costs far more to run. If speed is the only goal, start with a technical audit rather than a replatform.
Apps that work through theme app extensions or script tags generally do not carry over — that includes many reviews, upsell and popup apps. Apps with their own APIs usually do. Auditing your app stack is part of deciding whether headless is viable at all.
Only as far as you build for it. The native Shopify theme editor is not available on headless, so editor surfaces have to be rebuilt — preview deployments, structured content in Shopify metaobjects, and content your team can change without a pull request. Skipping this is the most common reason headless projects get reversed.
Hydrogen on Oxygen is the shortest path and the least infrastructure to own. If your engineers already work in another framework and will maintain it, the Shopify Storefront API is framework-agnostic — it works with Next, Nuxt, Astro or anything else that speaks GraphQL — and that may matter more than the head start.
Checkout stays on Shopify. That is not a limitation: it keeps PCI scope, fraud handling and payment methods someone else's problem. On Shopify Plus you can extend it with checkout extensibility and Shopify Functions.
It is easier to get wrong. Server rendering, canonical URLs, structured data, sitemaps and redirects become your responsibility rather than the platform's, so we treat them as build scope rather than a later pass.
More than a Shopify theme build, and it depends heavily on route count, content model and integrations. We scope first and quote against a written scope.
Yes, and it is worth knowing that before you start. Your products, content and checkout stay in Shopify throughout, so reverting means building a theme rather than migrating a platform. We keep that path open by not putting anything essential outside Shopify.
Good. Tell us what you need the storefront to do, and we will give you a straight answer on whether it needs headless or a better theme.
Tell us what you are building and we will come back with a straight read on scope — including when the answer is that you do not need us.