Web Development & Engineering
A headless build for sites where the content is the business
A Next.js front end on Sanity, Strapi or Payload — content modelled on how your organisation actually works, fast pages, editor preview, and a real migration plan.
- From
- $2,500–$12,000
- Typical time
- 4–8 weeks
- Usually bought by
- Content-heavy brands
What this actually solves
The organisations that need this share a shape. They publish a lot, they publish continuously, and their content has structure that a page-based system flattens. A recruitment firm with job listings that have employers, cities, salary bands and closing dates. A magazine with articles, authors, sections and series. A manufacturer with several hundred products that share specifications. In each case the content is not a set of pages — it is a set of things with properties, and it is presented in many places.
Two failures usually bring them here. The first is performance at scale: a traditional CMS assembling every page from a database on every request, plus the accumulated plugin weight of several years, gets slow in exactly the way that costs money when most visitors arrive from search on a phone. The second is structural. The content was modelled as pages, so a piece of information that logically belongs to a product now lives in five different pages of formatted text, and any change means finding all five. Nobody can produce a listing of every job in a given country because the country was never a field.
Going headless separates the two concerns. Content lives in its own system as structured data with relationships between records. The site is a separate application that reads that data and renders it — most pages built ahead of time and served as static files, which is why they are fast. The same content can then feed anything else you build without being duplicated. The price of this is that it is a real engineering project with a real architecture decision at the front, and getting that decision wrong is expensive in a way that only becomes visible about a year later.
What we do, and in what order
- Model the content on paper, before touching any software. What types of thing exist in your business, what fields each carries, what genuinely belongs to it versus what merely appears near it, and how they reference each other. We work through the awkward cases deliberately: what happens to a job listing when it closes, what a product with no image should do, whether a category is a field or its own document. This session is the highest-leverage part of the whole engagement. Two to four days.
- Implement the schema and set up the editing environment. The model built in the CMS with field descriptions written for the people who will use them, sensible validation, and the studio arranged so an editor sees their own work in a comprehensible order rather than an undifferentiated list of documents. Three to five days.
- Build the front end. Next.js, with the rendering strategy chosen per route rather than globally — pages that change rarely built ahead of time, pages that must be current rendered per request, and the reasoning recorded so whoever maintains it later understands why. Then listing pages, filters, search and pagination, which is where most of the real complexity in a content site actually lives. Two to four weeks.
- Wire up preview and the publishing workflow. Draft content rendered in the real design at a private URL, so editors are not typing into a form and hoping. Publication triggers a rebuild of the affected pages, which is verified by publishing something and watching it appear. Three to five days.
- Migrate the existing content. Scripted rather than manual once past a few dozen items — mapping old fields to new, converting formatting, moving images and rewriting their links, preserving dates and authorship. Then the URL map: every old address redirected to its new one, checked by crawling the old site's URLs against the new site rather than spot-checking a handful. One to two weeks, depending on volume and how consistent the old content is.
- Launch, then train the editors. The full pre-launch checklist, redirects verified, sitemap generated, analytics confirmed receiving data. Then a session with the people who will use the system daily, recorded, covering their actual document types. Three to four days.
What moves the price
The range is $2,500–$12,000 over 4–8 weeks, and three factors account for most of the spread.
How much old content has to come across. This is the largest single variable. Four hundred posts from an aging installation, with inconsistent formatting and images scattered across several locations, is a substantial project in its own right and is quoted separately from the build.
Whether the site is multilingual. Adding languages is not a translation task bolted on at the end — it changes the document model, the routing, the editorial workflow and the fallback behaviour when a translation does not yet exist. It has to be a decision at the start and it materially changes the number.
How much the editors need from their environment. A standard editing interface is included. Custom preview panes, bespoke input components, approval workflows and role-based permissions are each real engineering, and they are worth buying when a large team publishes daily and worth skipping when two people publish weekly.
What usually goes wrong
The content model is built to match the current design. A field ends up named for the box it appears in on today's homepage. The design changes within the year, that box no longer exists, and the field survives as something nobody can interpret. The model should describe things that exist in your business — a job listing, an employer, a city — not the page where they happen to be displayed this quarter. This is the single most expensive mistake available in this project, and it does not become visible for about eighteen months.
Migration is treated as an afterthought. The build is scoped and quoted, and the several hundred existing articles are assumed to be a weekend job. They are not. Worse, the URL mapping gets skipped, the old addresses return errors, and search traffic that took years to earn disappears in the first month after launch — an outcome that is very hard to explain and harder to reverse. Migration and redirects are planned as their own phase with their own time.
Editors are handed a system with no preview. They are asked to fill in fields and trust the result, which is a reasonable thing to refuse. What follows is predictable: publishing slows down, people start pasting formatted text from a word processor to feel in control, the content becomes inconsistent, and eventually somebody proposes going back to the old system. Preview is not a nicety on a headless build; it is what makes the whole arrangement acceptable to the people who have to live in it.
See where the site stands before you brief anyone.
If the site is already live, start from what it scores rather than from a guess. The audit reports what it checked, what it found, and — the part most tools leave out — what it could not check, and why.
Questions people ask before they commit.
- Why go headless instead of staying on a traditional CMS?
- Two reasons carry most of the weight. Speed, because pages can be rendered ahead of time and served as static files rather than assembled by a database query on every visit, which matters commercially when a large share of your traffic arrives from search. And structure, because your content is stored as data with real fields and relationships rather than as pages of formatted text, so the same article can feed the website, a newsletter and an app without being rewritten. If neither of those is true for you, a traditional CMS is very likely the better purchase.
- Which CMS will you put us on?
- It depends on what the content model needs and who administers it. Sanity is highly flexible with a generous free tier and a customisable editing environment. Strapi runs on your own infrastructure when data residency or control matters. Payload sits close to a Next.js codebase. Contentful is common in larger organisations with existing procurement relationships. We recommend after the content model is drafted, because that is what actually distinguishes them in practice.
- We have several hundred old articles. Can they come across?
- Yes, and you should budget for it as its own piece of work rather than assuming it is a switch. Migration means mapping old fields to new ones, converting formatting, moving and re-linking images, preserving publication dates and authors, and mapping every old URL to its new one with a redirect so search rankings and inbound links survive. Several hundred posts is realistically one to two weeks on its own, and it is frequently the largest single component of the project.
- Will our editors be able to see a page before publishing it?
- Yes, and it is worth insisting on. Without preview, a headless setup asks non-technical editors to write into a form and trust that it will look right, which they reasonably hate. Preview is configured so an editor can view an unpublished draft rendered in the real design at a private URL. It is a distinct piece of engineering rather than something that arrives by default, so it is scoped explicitly.
- How do we handle multiple languages?
- It has to be decided before the content model is built, not after. Language affects the shape of every document, the URL structure, how a translator's workflow runs, and what happens when one language is published and another is not. Retrofitting it to an existing model is close to rebuilding the model. If multilingual is anywhere in your two-year plan, say so at the start — it changes the estimate, and it changes it far less at the beginning than in the middle.
- Who maintains this afterwards, and can another developer take it over?
- It is a standard Next.js codebase in your repository with a documented CMS schema, so any competent developer familiar with the framework can pick it up. That is deliberate. The handover includes the repository, the environment variables documented, the deployment setup, the content model with a note on why each decision was made, and a recorded walkthrough for editors.
Often taken together.
Start with the brief, not the invoice.
Send what you are trying to achieve. You get a written scope, a price and a date — or an honest “this is not the right service for that”.
Talk about Headless CMS build All Web Development & Engineering services