My team edits content in a headless CMS. How do I make the site update itself?
Short answer: Set up a build hook, a unique URL that your CMS calls automatically whenever content changes, and Netlify rebuilds and republishes the site without a developer doing anything manually. The setup itself needs a developer once, to connect the CMS's own webhook feature to Netlify's build hook URL; after that one-time step, every future content edit publishes on its own.
Your team edits content in a system that's supposed to make updates easy, and then the actual website doesn't change until someone remembers to tell it to.
I'm Ranjit, and I run Blur Studio: 15+ years building software, 120 apps taken live, and clients who have gone on to raise $10M+. I build AI systems and processes that help businesses do a lot more with a lot less time. I also work differently from most of what else is out there, more on that further down this page. Say hello.
This page may contain affiliate links from which Blur Studio earns commissions.
This is a specific, common gap with headless CMS setups (and with any site where the content and the code that renders it live in different places). The CMS happily saves your team's edit. The actual public site, which was built from a snapshot of that content at some earlier point, has no idea anything changed, because nobody told it to rebuild. Someone has to trigger that rebuild, and if that someone is a developer who has to remember to do it manually, you're back to the exact bottleneck a headless CMS was supposed to remove.
What a build hook actually is
A build hook is a unique URL that, when called, tells Netlify to start a new build and deploy immediately, using whatever the current content is. Most headless CMS platforms have a webhook feature built in: a setting where you can tell the CMS "when content is published, send a request to this URL." Point that at your Netlify build hook, and the two systems are connected: content gets published in the CMS, the webhook fires automatically, Netlify rebuilds, and the live site catches up, usually within a minute or two depending on how long your site takes to build.
Step by step: how to set this up
- Generate a build hook in your Netlify site settings. This gives you a unique URL specific to that site, which a developer creates in a couple of clicks.
- Find your CMS's webhook or "publish hook" setting. Nearly every headless CMS (Contentful, Sanity, Strapi and similar) has a dedicated place to add outgoing webhook URLs that fire on specific events, usually "content published" or "entry updated."
- Paste the build hook URL into that setting. This is a one-time connection; once it's saved, it stays active.
- Publish a small test edit in the CMS and watch for the rebuild. Check your Netlify dashboard's deploy log to confirm the build actually started when you expected it to.
- Decide whether every content type should trigger this, or just some. Some teams want every single edit to republish instantly; others prefer batching smaller changes and only triggering a rebuild for specific events. Most CMS platforms let you scope which events fire the webhook.
One practical thing worth knowing: this setup needs a developer to do once, but nothing afterward. Your team keeps editing content in the CMS exactly as before; the only difference is the site now actually reflects what they typed, without anyone needing to remember a manual step.
What this actually costs
Build hooks themselves are a standard feature, included on every Netlify plan. Each triggered rebuild counts as a production deploy against your monthly credits (15 credits per deploy on the standard credits system), so the real cost question is simply how often content gets published. A team publishing a handful of updates a day stays comfortably within the free plan's 300 monthly credits; a very high-frequency publishing schedule (dozens of updates an hour, which is unusual for most content teams) is where you'd start watching usage more closely.
The alternatives, and when they fit better
WordPress sidesteps this whole problem by rendering pages on every request rather than building static files ahead of time, so there's no separate "rebuild" step at all; the tradeoff is generally more server overhead and a different maintenance burden than a static, build-hook-driven site.
Webflow bundles the CMS and the publishing step into one tool, so there's no separate webhook to configure, at the cost of being locked into Webflow's own ecosystem rather than choosing your own CMS and host independently.
When to skip this
Build hooks need a developer to set them up correctly once; if there's no developer involved at all and your team is purely non-technical, a hosted builder like Webflow with content editing and publishing combined into one interface is genuinely easier, even though it trades away some flexibility. Build hooks are the right fit specifically when you already have, or are willing to bring in, someone to do the one-time wiring.
A worked example: a marketing team that stopped filing tickets
Say a marketing team at a mid-sized business edits blog posts and landing page copy in a headless CMS several times a week, and every edit used to require filing a ticket with the development team to "please rebuild the site" because nobody had connected the two systems. Tickets sat in a queue behind other development work, sometimes for days, which meant a blog post written for a specific event sometimes went live after the event had already happened. Once a developer spent roughly twenty minutes setting up a build hook and pointing the CMS's webhook at it, that entire ticket queue disappeared for content changes specifically. The marketing team now publishes directly, sees the change live within a couple of minutes, and the development team's ticket queue only contains actual code changes, not content updates that never needed a developer's attention in the first place.
The twenty-minute setup cost is worth naming directly, because it's often the thing that makes teams hesitate to bother: this isn't an ongoing maintenance item, it's a single wiring task that, once done, keeps working indefinitely without anyone revisiting it, unless the CMS or hosting platform itself changes.
Common mistakes with build hooks
- Not testing with a real content edit before relying on it. Confirm the full chain, CMS edit, webhook fires, Netlify build starts, site updates, with an actual test change, rather than assuming the connection works just because both settings were filled in correctly.
- Scoping the webhook too broadly. If every minor save (not just published content) triggers a rebuild, you can end up burning build credits on draft edits nobody meant to publish yet. Check which specific event the webhook fires on, not just that it fires.
- Forgetting the build hook URL is effectively a secret. Anyone with that URL can trigger a rebuild. It's not typically sensitive enough to cause real harm if exposed, but there's no reason to post it somewhere public either.
How I'd approach this
This is a quick, genuinely worthwhile fix once you know it exists, and I'll usually set it up as a small, fixed-cost piece of work rather than something that needs ongoing attention afterward. Where it gets more involved is when a team wants more control over the publishing flow itself, staging content for review before it goes live automatically, scheduling publishes for a specific time, or routing different content types to different rebuild rules. That's a genuine custom integration, not just a webhook URL pasted into a settings field. Get in touch if your setup needs that extra layer.
Questions people ask
What is a Netlify build hook exactly?
A unique URL, specific to your site, that triggers an immediate rebuild and deploy when something sends a request to it. It's designed to be called by other systems automatically, like a CMS's own webhook feature, rather than clicked manually.
Do I need a developer to set this up?
Yes, once. Creating the build hook in Netlify and pasting it into your CMS's webhook settings takes a developer a few minutes, and it's a one-time setup. After that, your team keeps editing content normally with no extra steps.
How fast does the site update after a content edit?
Usually within a minute or two of the webhook firing, depending on how long your specific site takes to rebuild. Larger sites with many pages take longer to rebuild than small ones.
Does this work with any headless CMS?
Most popular headless CMS platforms (Contentful, Sanity, Strapi and similar) include an outgoing webhook feature that can be pointed at any URL, including a Netlify build hook. Check your specific CMS's settings for a webhook, publish hook, or similar outgoing-notification feature.
Will every single content edit trigger a full rebuild?
That depends on how you configure the webhook in your CMS; most platforms let you choose which events (publish, update, delete) trigger it, so you can scope it to only what you actually want to republish automatically.
What if I want content staged for review before it goes live automatically?
That's possible but needs more setup than a basic build hook, typically a staging environment or a review step built into the publishing flow. It's a reasonable thing to want, just a bit more involved than the basic automatic-rebuild setup described here.
Is the build hook URL sensitive, like a password?
It's not as sensitive as a password, since triggering a rebuild rarely causes real harm on its own, but it's still not something to post publicly. Anyone with the URL can trigger a rebuild, so treat it with the same basic care you'd give any internal configuration detail.