Do You Even Need a Server for a Sanity Website?
“Do I need a server to host a Sanity website?” is one of the most common questions people ask when they start out — and the honest answer is that it depends on what you mean by “Sanity website,” because Sanity is really two or three separate things wearing one name.
Sanity is more than one thing
There’s the content lake and API (where your data lives, hosted by Sanity), the Studio (the React app your editors use), and your front end (the actual website visitors see). “Hosting a Sanity site” can mean any of these, and they have different answers.
The content: never your server
Your content lives in Sanity’s hosted content lake and is served through their API and CDN. You don’t run a database or a CMS server for it, ever. That part is genuinely serverless from your point of view.
The Studio: an optional server
The Studio is a static React build. Sanity can host it for you, or you can host it yourself on your own domain and behind your own access controls. Either way it doesn’t demand a traditional always-on server — it’s static files.
The front end: this is where hosting happens
Here’s the real question. If your site is a pure static export, it can go on a CDN with no server at all. But most real Sanity sites are built with Next.js and use ISR, server components, API routes, or draft previews — and those need a Node runtime. That’s a server, whether you call it a server, a container, or serverless functions.
So do you need one?
A purely static marketing site: maybe not — a CDN may be enough. A Next.js app with incremental regeneration, on-demand revalidation from webhooks, or preview mode: yes, you need somewhere that runs Node. Most Sanity sites that grow past a brochure end up here.
What we do
SrvBot runs the Node front end and, if you want it, a self-hosted Studio on one isolated, EU-hosted platform — deploying on push with SSL handled. It’s the setup this very site uses. The details are at /sanity.
The bottom line
The content never needs your server; the front end usually does, once it’s more than static. If you’re running Next.js with Sanity, /sanity and /get-started show what hosting it looks like.