Netlify, Cloudflare Pages, Vercel and Sarpius all serve static sites from a global edge. Here's how they actually differ on jurisdiction and price.
Updated 24 September 2026
For a static or client-rendered build (Vite, a prerendered SvelteKit site, Astro, plain HTML/CSS), the mainstream platforms, Netlify, Cloudflare Pages, Vercel and Sarpius, all do roughly the same thing at the mechanical level: push a git repo, get a build uploaded once and served from a cached edge with automatic TLS, at no container cost. Cloudflare Pages runs directly on Cloudflare's own network. Netlify and Vercel each operate their own CDN. Sarpius uploads the build to S3-compatible object storage and serves it through its own edge proxy, which itself sits behind Cloudflare's network by default, so a Sarpius-hosted static site is cached at two layers rather than one. The practical differences are jurisdiction, whether the free tier allows commercial use, and what happens once the project also needs a real backend.
Yes. Sarpius's connect-a-repository wizard recognizes Vite, SvelteKit, Astro, React, Vue, Angular, Hugo, Eleventy, Docusaurus, MkDocs and plain static output among its 45 auto-detected frameworks and runtimes, and classifies each detected Component into "Served from storage (static)" or "Containers" before you confirm the plan. A static Component never spins up a container, is billed on stored size (EUR 0.025/GB-month) rather than on traffic, and gets its hashed build assets (the app.4f3a9c12.js shape Vite, Rollup and webpack all produce) marked Cache-Control: public, max-age=31536000, immutable, with everything else no-cache so a redeploy is always observed. Directory-style routes resolve to that directory's own index.html, so /blog correctly serves blog/index.html rather than falling back to the site root.
| Feature | Sarpius | Netlify | Cloudflare Pages | Vercel |
|---|---|---|---|---|
| Company / HQ | Netherlands (KVK 73239038), owns its hardware | United States (San Francisco) | United States (San Francisco) | United States (San Francisco) |
| How the static build is served | S3-compatible storage + Sarpius's own edge, behind Cloudflare's network | Netlify's own CDN | Directly on Cloudflare's own global network | Vercel's own CDN (126 PoPs, 19 regions, per Vercel's own docs) |
| Free tier, commercial use | Allowed, stated in the Terms of Service, section 5 | No explicit restriction found on Netlify's current pricing page (check before relying on this) | No restriction found on Cloudflare's Pages docs/pricing pages checked | Explicitly restricted to personal, non-commercial projects |
| Cheapest paid plan | EUR 4.99/month per additional app (container-side; static Components are billed on storage only) | "Personal" plan around $9/month, per Netlify's current pricing page (treat exact tier names as "check") | Free plan: 500 builds/month, 100 projects/account; paid "Workers Paid" tier for higher limits | Pro: $20/month per seat |
| EU jurisdiction (company, not just data center) | Yes, Dutch company, no US parent | No, US company | No, US company | No, US company |
| Container/backend in the same product | Yes, first-party (PHP, Node, Python, Java, Go) | No first-party container product; functions only | Workers (serverless), not containers | Serverless/edge functions, not containers |
| Managed database in the same product | Yes: PostgreSQL, Redis, MariaDB | No first-party database | D1 (SQLite-compatible), KV, R2 | No first-party database since Vercel Postgres/KV were deprecated |
| Project export / exit bundle | Project migration bundle: container files, SQL database dumps, bucket objects, commit manifest, secrets.env via 5-min single-use token behind 2FA, 24h retention | Git repository only; no automated full-stack archive | Git repository and Cloudflare API/wrangler; separate exports for D1/KV/R2 | Git repository only; separate partner DB exports |
Cloudflare's own network spans 348 cities across 8 regions, by Cloudflare's own published figure, and Vercel's spans 126 Points of Presence across 19 compute-capable regions, by Vercel's own docs. Neither figure says anything about which company's law governs your data: Cloudflare Pages, Netlify and Vercel are all US companies, so the CLOUD Act question applies to the platform even when a specific edge node happens to sit in an EU city. Sarpius is a Dutch company with no US parent, and for a domain where Cloudflare itself, as a sub-processor, is the concern rather than the server's location, a paid per-domain "Privacy route" removes Cloudflare from that domain's request path entirely, at EUR 4.99/month on top of the existing EUR 1.99/month custom-domain fee. That option loses Cloudflare's CDN, WAF and DDoS protection for that domain; it is a genuine trade, not a free upgrade.
This is where the four platforms diverge hardest. Netlify, Cloudflare Pages and Vercel each answer with serverless/edge functions: short-lived, request-scoped, no long-running process. Sarpius answers with a container in the same Project, wired to a managed Postgres, Redis or MariaDB database, which is the better fit for a real backend process (a Laravel API, a Node worker, a long-running job) rather than a handful of stateless functions. Sarpius's own Serverless Functions, the function-per-request model the other three already ship, are planned, not available yet.
No. A static Component served from object storage is billed on stored GB, not on egress; the 10 GB bandwidth bundle and the EUR 0.05/GB overage rate apply to container apps, not to the storage-served path.
Mechanically yes: a build is uploaded once, hashed assets are cached as immutable, everything else is revalidated on every request, and the site sits behind a CDN. The difference is who operates that CDN: Vercel and Netlify operate their own; Sarpius serves from its own edge proxy sitting behind Cloudflare's separately-operated network by default, with a paid opt-out per domain.
Yes. A Project is one application made of multiple Components; the wizard detects each one separately and puts the front-end in storage and the back-end in a container, sharing routing, databases and storage.
Yes. The Terms of Service say so explicitly in section 5: the Free Tier may be used for any lawful purpose, including commercial use such as a business website or the front-end of a paid product.
Yes. You can generate a Project migration bundle from the Project workspace behind two-factor authentication. The bundle contains the built static output, live container files, SQL database dumps, bucket objects, and a manifest with git commit SHAs, per-file sha256 checksums, and explicit omission notes. Decrypted environment variables are streamed as secrets.env at download time using a 5-minute one-time token and are never stored in the resting bundle artifact. Bundles are downloadable for 24 hours and can be created once per 24 hours.