A website you can change yourself, in about ninety seconds.
No code, no tickets, no waiting for someone to get back to you. You log in, change what needs changing, and press publish — and you cannot accidentally break how the site looks or lose the visitors Google already sends you.
- Typical timeline
- 6 to 12 weeks for a focused build
- Starts with
- Your content model, and who edits it
- You own
- Code, accounts and content, from day one
- How it is priced
- Fixed, agreed after a paid audit
Scoped by page-type count, not page count. Rendering strategy decided per route during week one.
Schema audit: types, references, validation rules, and who actually holds publish rights today.
Your GitHub org from the first commit, not a squashed import at handover. Documented content export path.
Scope frozen at the content model rather than at the comps, which is why it can be fixed at all.
The two questions we get first.
So what is it, actually?
Most websites are built as one fixed thing. We build yours as a set of frames you fill.
To change anything, you email and wait.
- Headline
- What you do
- Reviews
- Opening hours
- Get in touch
You change what is inside them, any time.
Will I still be able to do the SEO myself?
Yes — because the controls are built in rather than assumed. When nobody builds them, changing a page title becomes a developer ticket and the SEO work quietly stops.
- Page title
- Walk-in clinic in Dallas — open 7 days
- Description
- No appointment needed. X-rays, labs…
- Web address
- /locations/dallas
- Social image
- dallas-clinic.jpg
- Show in Google
- Yes
- Google is told
- The ranking carries over
- Old links keep working
Protecting the rankings you already have while the site moves is a separate job, further down this page.
What changes on a Tuesday morning.
This is the difference, and it is the whole reason people do this.
How it works now
- Tue 9:12You spot that the flu clinic hours are wrong.
- Tue 9:14You email whoever built the site, and start chasing.
- ThuThey reply asking which page you mean.
- Next weekIt is fixed. The flu clinic ran on Saturday.
How it works afterwards
- 0:00You spot that the flu clinic hours are wrong.
- 0:20You click the hours and type the right ones.
- 0:50You check the preview reads properly on a phone.
- 1:30You press publish. It is live.
Two ways a CMS fails, and most agencies only name one.
They are opposite ends of the same dial. Both end in a rebuild, which is why the diagnosis has to come before the platform choice.
Every change needs a developer
The content model was designed around the pages that existed on launch day, so anything new is a code change. The campaign slips, the pricing page goes stale, and the CMS everyone was excited about becomes the thing they route around.
The page builder decayed edit by edit
Free-form blocks and no guardrails, so two years of well-meaning edits have left every page looking like a different company. Nobody did anything wrong — the system allowed it.
What you can do, and what you cannot break.
The second half is the part people are nervous about, so it is worth being specific: the mistakes that worry you are not possible.
- Change any words, prices or hoursOpening times, fees, a clinician's name, a phone number. On any page.
- Add a whole new pagePick a layout that already exists and fill it in. You are not designing anything.
- Swap photographsDrag one in. It is resized and cropped for phones automatically.
- Put up a noticeBank holiday hours, a closure, a waiting list. Up in a minute, down in a minute.
- Publish in a second languageEvery page can exist in both, and people land in the right one.
- See it before anyone else doesExactly how it will look, on a phone and a laptop, before it goes live.
- Make a page that looks nothing like the restThe layouts only offer choices that stay on brand.
- Take the site downNothing you can click is capable of it.
- Publish something half-finishedYou see it first, and someone can be required to approve it.
- Lose anythingEvery version is kept, so it can always be put back.
What we build
Eight things, and the first one decides whether the other seven survive contact with your team.
Content modelling
The foundationPage types, references and validation designed around how your editors actually work. This is where these projects are won or lost: a model built for launch day needs a developer for everything after it, and a model built for the tenth content type does not.
- 02
A design system, not one-off pages
One set of brand-approved sections, built once and correct in any combination, with type scale, spacing and colour fixed as tokens rather than retyped on each page. This is what stops a site drifting off-brand two years of edits later.
- 03
Live preview and approvals
Editors see the real page before it publishes, on desktop and on a phone, with sign-off wherever a human should be in the loop. No staging deploy to check a headline.
- 04
SEO controls on every page type
Title, description, canonical, Open Graph and hreflang modelled on the page and editable by your team — plus sitemaps and structured data generated from the content itself, so the markup cannot drift from what the page actually says.
- 05
Speed as a budget, not a hope
Pages built ahead of time and served from the edge, AVIF and WebP at responsive sizes, and a rendering strategy chosen per route. Core Web Vitals measured on real visitors rather than on a developer laptop, because only one of those is what Google grades.
- 06
More than one language
Locale-aware routing and hreflang search engines read correctly, on one content model across every market rather than a duplicated site per language. Designed in it costs days; retrofitted it is a migration.
- 07
Integrations that fail loudly
CRM, booking, search, payments and analytics wired in properly, with the error paths handled — an integration that silently drops an enquiry is worse than not having one at all.
- 08
Training, and the keys from day one
Roles, required fields and brand-locked options so the guardrails hold, plus a session with whoever will run it. Repository and cloud accounts are in your name from the first commit, not handed over at the end.
Why it is fast, and why it stays up.
Not tuning, and not a plugin. These come from the shape of the thing: pages are built before anyone asks for them, and what serves them has no database to query and no admin panel to break into.
- LCP
- under 2.5sHow fast the main content appears
- INP
- under 200msHow fast the page answers a tap
- CLS
- under 0.1How much the layout jumps about
Measured on your real visitors at the 75th percentile over 28 rolling days — not on a laptop. A perfect score in a testing tool and a passing grade in Search Console are different things, and only the second one counts.
Nothing is built while someone waits
Pages are generated ahead of time and served from the edge nearest the visitor. No database is queried during a visit, because there is no database in the path.
There is no admin login to attack
The public site has no login form, no database and no plugins. The CMS sits behind an API on someone else's domain, so the usual way in simply is not there.
It stays up when the CMS does not
The site is already built and already deployed. A CMS outage stops you publishing for an hour; it does not stop anyone reading.
Traffic spikes cost nothing
A CDN serves the same file to ten visitors or ten thousand. Nothing has to scale, because nothing is being computed per request.
No weekly patch treadmill
No plugins means no queue of security updates somebody has to stay on top of, and no plugin conflict taking the site down on a Friday.
Assistants can read it
Server-rendered HTML that resolves without running JavaScript, which is what an AI answer engine needs in order to cite you rather than skip you.
Your CMS, operable by an AI agent — on the same rails as your team.
The guardrails that keep your editors on brand are the same ones an agent works inside. It can draft, restructure and prepare a release; it still cannot publish something nobody looked at.
- 01You ask
“Add a location page for Dallas, same shape as Fort Worth.”
- 02Over MCP
The agent reads your actual content model, not a guess at it.
- 03Into the CMS
It lands as a draft in a release, exactly like an editor's work.
- 04A person publishes
The same review step, the same approvals, the same audit trail.
Connected to the assistant you already use
Claude, Claude Code, Cursor or ChatGPT — MCP is an open protocol, so the CMS does not have to care which one your team opens.
Official on Sanity and Prismic
Both ship a schema-aware MCP server. Where a platform has none yet, we build the connection against its API rather than waiting for one.
The code stays inside the system
Design tokens instead of loose values, a typed content model and a component library an agent has to compose from — so a direct change by Claude Code arrives as something reviewable rather than a new button style nobody chose.
Your team is trained on it
We sit with whoever will use it and set the rules together: what an agent may touch, what always needs a human, and how to spot when it has got something wrong.
Will this affect how people find us on Google?
This is what people worry about most, and they are right to. It is also the thing most cheaply got wrong, so here is exactly what we do about it.
Every page on your website has an address. When a site is rebuilt those addresses often change — and if nobody tells Google, the pages it used to send people to simply stop existing. That is how a business pays for a new website and quietly loses half its enquiries.
- 01
We write down what Google already does for you
A full year of it: which searches bring people to you, which pages they land on, and how many. Nothing moves until that is recorded, because it is the only way to prove afterwards that nothing was lost.
- 02
We list every page and where it is going
Every address on your current site, matched to its new home, with how much traffic each one gets. You see that list and agree it before we build anything.
- 03
We leave a forwarding address on every old page
Exactly like forwarding post when you move house. Anyone — or any search engine — going to an old address is taken straight to the new one, so old links keep working.
- 04
We check it on the day, page by page
Before anyone is told the new site is live, we confirm every forwarding address works and that Google has been handed a fresh map of the site.
- 05
We keep watching
Problems here are silent — nothing breaks visibly, the visitors just stop arriving. So we watch the numbers against the ones recorded at the start, and fix anything moving the wrong way.
Get Well Clinic
getwellclinic.com- Legacy URLs left to 404
- 0
- Flat pages, into a real hierarchy
- 18 → 24
- Lighter homepage images
- 98%
Legacy URLs left to 404
Flat pages, into a real hierarchy
Lighter homepage images
A five-location Texas clinic whose founder had built the site herself. Two menu links led to pages that did not exist, and three services she charged for had no page at all.
Read the case studyWhich platform, and when not.
We are not a reseller and we hold no vendor badge, so this is the same advice you would get on the call. The recommendation follows your content model, your team and your budget.
Editors need visual page building with strict brand control, and marketing autonomy is the point. Slices give you brand-approved sections built once and reused everywhere.
Your content is deeply relational, or you need unusual editorial workflows the model has to bend around.
The content is structured, relational and genuinely unusual, and you want the editing surface itself to be customisable. Schema lives in code and versions with the repository.
You want it to work out of the box with minimal front-end investment, or nobody on the team will own the Studio.
Visual editing is the deciding factor for the people who will live in it every day, and localisation is heavy from the start.
Your developers want the schema in the repository rather than configured in an interface.
The CMS and the application are the same thing, or the database and the admin have to sit inside your own infrastructure. Next.js native, and yours entirely.
There is no Node.js ownership on the team, or you want a hosted service with none of the operational surface.
Procurement wants a large established vendor, governance requirements are strict, and localisation is enterprise-scale across several brands.
Budget is the binding constraint, or the estate is a single marketing site that will never need that ceiling.
We have shipped this, and it is still running.
Open it and check. Three years in, still published entirely by their own marketing team.
SUMM
summ.nl- Languages, on every page
- 2
- Dynamic page templates
- 6
- Devs needed to publish
- 0
- Running since
- 2023
Languages, on every page
Dynamic page templates
Devs needed to publish
Running since
A Dutch HR-tech consultancy whose site spoke one language and needed a developer for every page. We rebuilt the content model as reusable slices, added six dynamic templates covering the whole content library, and localised every page into Dutch and English with routing search engines read correctly.
Read the case studyHow the work actually runs.
Four stages. You are only really needed in two of them, and we will tell you exactly when.
We look at what you have
We go through your current site properly and write down what is working, what is broken, and what is costing you enquiries. You get that in writing whether or not you carry on with us.
A conversation. Nothing to prepare.
We agree what it should be
Which pages you actually need, what your team will want to change often, and what the site has to connect to — a booking system, a mailing list, whatever you already use.
Tell us honestly how your team works. This is the part that decides everything.
We build it
You see it as it goes, not at the end. We move your existing words and pictures across, and flag anything that needs a decision from you rather than guessing.
Answer questions, and send anything new you want on there.
We show you how to run it
A session with whoever will be updating it — usually about an hour, because there is not much to learn. You get written notes and somewhere to ask questions afterwards.
An hour, and someone on your side who will own it.
What makes these projects slip.
Projects like this slip for the same reasons every time, and none of them is the building.
- 01One person on your side who can make decisions. Not a committee — a person who can say yes.
- 02Your words and photographs, or a decision to let us work with what is already there. Waiting on content is what makes these projects take twice as long.
- 03About an hour a week during the build, and an hour at the end for training.
- 04A willingness to be told when something is not worth doing. We would rather lose the extra work than build you something you will not use.
Worth doing, or not.
- Your website is a real acquisition channel and marketing is blocked on engineering
- You publish often enough that a two-week turnaround on a page is costing you money
- You sell in more than one language, or you will within the year
- You have organic traffic worth protecting through a replatform
- You want to own the stack outright, with no licence you cannot walk away from
- You have five pages that never change. A simpler tool is cheaper and we will say so
- Nobody on your side will own the content model after we hand it over
- You want the platform we resell — we do not resell one, and that cuts both ways
- The real problem is the copy, not the CMS. That is a different engagement
Questions, answered.
Written to be useful on their own, because that is how they get quoted.
01Do I need to be technical to use this?
No. If you can use email and attach a photograph, you can use this. Most people we train are comfortable within an hour and stop thinking about it entirely within a fortnight. The whole point of building it this way is that the difficult parts were done once, up front, so that using it afterwards is not difficult.
02What if I break something?
You cannot, in any way that matters. The layouts only offer choices that look right, nothing you can click will take the site down, and every previous version is kept — so if you change your mind about anything, it goes back the way it was. The things people are nervous about were designed out before you ever log in.
03Can other people on my team update it too?
Yes, and they should. Everyone gets their own login, and you decide who can do what. A receptionist might be able to change opening hours but not prices; a practice manager might be able to publish anything. If you want changes checked before they go live, that can be turned on as well.
04What happens to everything already on our website?
It moves across. We go through what is there, bring over the pages that are earning their place, and point out anything duplicated, out of date or that nobody has visited in a year so you can decide whether to keep it. You will not lose anything without being asked first.
05Who owns it? What if we stop working with you?
You own all of it, from the first day rather than the last invoice. The website, the accounts it runs on and everything you have written are in your name throughout, and we work inside them as your team rather than holding them and handing them over at the end. If you stopped working with us tomorrow you would keep everything, and any competent web company could pick it up — we build with widely used tools on purpose, precisely so that is true.
06How long will it take?
Usually six to twelve weeks from starting to being live, and twelve to twenty when there is a shop, several markets or unusual approval steps involved. The thing that makes it longer is almost never the building — it is waiting on words and photographs, or a decision nobody can make. We tell you at the start exactly what we need from you and when, so that is visible rather than a surprise in week eight.
07What does it cost?
There is no honest single price, because it depends on the shape of what you need — how many genuinely different kinds of page there are, how much of your content already exists, what it has to connect to, and whether you need a second language. What we can promise is that we work it out properly first, then fix the price before anyone starts, so the number you agree is the number you pay.
08We already have a website. Does it definitely need replacing?
Not necessarily, and we will tell you if it does not. Sometimes the site is fine and the real problem is that nobody is answering the enquiries it already produces. Sometimes a few fixes get you most of the way. We would rather say that on the first call than sell you a rebuild you did not need.
The questions we get from the person who has to maintain it.
01Is a headless CMS better for SEO?
It removes a set of common problems and introduces one. Gone: plugin-generated markup that breaks silently, theme bloat you cannot control, and a rendering path you do not own. Introduced: nothing renders unless somebody builds it, so metadata, canonicals, hreflang, sitemaps and structured data have to be designed into the templates rather than assumed. Done properly a headless build outperforms what it replaced, mostly on Core Web Vitals and on structured data that cannot drift. Done carelessly it ships a fast site that search engines cannot read.
02Will we lose rankings when we migrate?
Only if the redirects are discovered rather than designed. We export twelve months of Search Console data and your backlink profile first, map every resolving URL to its destination with traffic and links attached, agree that map before the build starts, ship the 301s in code, and monitor index coverage through the weeks after launch. On Get Well Clinic that meant restructuring eighteen indexed URLs into a twenty-four page hierarchy with none left returning 404.
03Which headless CMS is best for a marketing website?
For most marketing sites, Prismic or Storyblok, because visual page building is what actually determines whether marketing uses the thing. Sanity or Payload win when the content is unusually structured or the CMS and the product are the same application. Contentful earns its price at enterprise governance and localisation scale. We publish a full public comparison of every platform we work with, including the ones we do not recommend.
04Headless CMS or composable — which do we need?
Almost certainly headless, and probably not composable yet. Every composable stack is headless, but composable means orchestrating several specialised services behind one experience, which earns its complexity at multi-brand, multi-team scale. For one marketing site in one or two languages, a headless CMS with a well-built front end is the whole answer. Buying composable first is the most common way these projects get expensive before they get useful.
05Do we have to use Next.js?
No. Next.js is our default because it is right often enough, but Astro is usually better for content-heavy marketing sites where almost nothing is interactive, and Nuxt makes sense when the team already works in Vue. Because the CMS is headless the front-end choice stays genuinely reversible, which is much of the point of building this way.
06Why not just use WordPress with a REST API in front of it?
You can, and for some estates it is the pragmatic answer — the editorial familiarity is real and the plugin ecosystem solves problems you would otherwise build. What you keep is the plugin surface, the update treadmill and a content model shaped by twenty years of backwards compatibility. What you gain over a purpose-built headless platform is mostly that nobody has to learn anything. If the deciding constraint is that editors already know WordPress, say so early and we will scope it honestly rather than talking you out of it.
07How do you handle preview for unpublished content?
Draft mode with a signed token, rendering the same component tree as production against the CMS draft API, at the canonical URL of the eventual page. No separate preview build and no second code path. On platforms with a visual editor we wire the click-to-edit overlay to the same route so editors get in-context editing rather than a side-by-side approximation.
08What does incremental revalidation actually look like in practice?
Publish fires a webhook, the webhook revalidates by tag rather than by path, and the tags are derived from the document and its references so a change to a shared component invalidates every page embedding it. The failure mode to avoid is time-based revalidation as a substitute for thinking about dependencies — it looks like it works right up until an editor is watching a stale page and does not believe you.
09How do you keep content types and TypeScript in sync?
Codegen from the schema, output checked into the repository, and generation run in CI so a divergence fails the build rather than surfacing as a runtime undefined on a production page. Where the platform's generator is weak we write the mapping ourselves, but it is always generated from a single source of truth and never maintained by hand.
10What is your position on localisation?
One content model with a locale dimension, not duplicated document trees per market, and routing where the locale is a segment rather than a subdomain unless there is a real organisational reason. Hreflang generated from the routing so it cannot drift when someone adds a page, x-default set explicitly, and the language switcher resolving to the equivalent page rather than the homepage — which is the bug in almost every localised site we are asked to fix.
11Can our marketing team really publish without a developer?
That is the entire point, and it is a function of the content model rather than the platform. If the model was designed around the pages that existed at launch, every new page needs a developer no matter what you bought. We design the blocks so a page is assembled rather than built, and we put guardrails on them so assembling one cannot take the site off brand. On SUMM that produced two languages on every page with zero developers in the publishing path, running since 2023.
12Who maintains this after you leave?
Your team, and that is the design goal rather than a hope. The stack is deliberately unexotic, the schema is documented in the repository with the reasoning attached, and the handover includes a working session rather than a link to a Notion page. If you would rather we stayed on to run it, that is a monthly arrangement and it is not a prerequisite for anything.