# European alternatives to Cloudflare Pages in 2026

Last updated: 2026-11-10

If your Pages project uses Astro, Next.js, Nuxt or SvelteKit, **Eurobase** carries over most of it: the same Cloudflare adapters, your `_redirects` and `_headers` files, and D1, all on European infrastructure. A site made only of static files fits **statichost.eu**, which builds from Git on a stack it describes as European at every layer. Pick **Bunny.net** when your own CI produces the build and you want a CDN billed by traffic, **Codeberg Pages** for open-source docs, and **Clever Cloud** when your backend is already hosted there.

Cloudflare now tells new projects to start on Workers instead of Pages, so a move is worth planning either way.

## Cloudflare Pages alternatives at a glance

| Platform | Company | Starts at | Pages Functions | Preview deployments |
|---|---|---|---|---|
| Eurobase | Warsaw, Poland | Free, then €10 a month + VAT | Rewrite as framework routes or Eurobase Functions | No |
| statichost.eu | Stockholm, Sweden | Free for 1 site, then €9 a month | No server code on the listed plans | Listed as coming soon |
| Bunny.net | Ljubljana, Slovenia | $1 monthly minimum, then by traffic | Not run; Edge Scripting is a separate product | Not documented |
| Codeberg Pages | Berlin, Germany | Free | No | Not documented |
| Clever Cloud | France | Free credits, then by instance size | Run as a separate app | Not documented |
| Cloudflare Pages | San Francisco, United States | Free, Functions billed as Workers | Yes | Yes, unlimited |

Prices are from each provider's own page, checked on 9 and 10 November 2026. Bunny.net and Cloudflare price in US dollars.

## What to check before you leave Pages

- **Whether you use `/functions`.** Pages Functions are a Cloudflare file convention. No host here runs that folder as it is, so each handler becomes a route in your framework or a separate function.
- **Your bindings.** List every binding in your Wrangler config or project settings. D1 can move to Eurobase, while KV, R2, Durable Objects and queues need another design on every platform here.
- **How much you rely on previews.** Pages builds a preview URL for each pull request and for pushes to branches other than production. None of the European hosts here documents the same today.
- **Redirect and header rules.** Pages accepts up to 2,000 static and 100 dynamic redirects in `_redirects` and 100 rules in `_headers`. Confirm the new host reads both files, or budget time to rewrite them.
- **Single-page app and 404 behaviour.** When your output has no top-level `404.html`, Pages treats the site as a single-page app and answers unknown paths with the root page. Check what the new host does with unknown paths.
- **Who you sign with.** Cloudflare's terms are governed by California law. Moving to a European host changes the contract as well as where requests are answered.

## 1. Eurobase

Connect a repository on GitHub, GitLab, Codeberg, Forgejo or Gitea, and Eurobase compiles it with the Cloudflare adapter your framework already has, then serves it on V8 isolates through the open-source Workers runtime. Apps on V8 isolates read `_redirects` and `_headers` from their static output. A D1 database becomes a SQLite database in your project, but it starts empty, so you import your data yourself.

A Pages repository needs two changes. A Wrangler config with `pages_build_output_dir` turns the build into a container, so delete it if you don't use D1, or convert it to a Workers config with `assets` if you do. The `/functions` folder isn't run: each handler moves into a server route of your framework, such as an Astro endpoint, or into a TypeScript Eurobase Function.

- **Best for:** framework apps on Pages that combine static assets, D1 and server routes, including teams that let a coding agent ship through the Eurobase CLI or MCP server.
- **Price:** Free covers 2 projects. Paid plans are €10 a month for Starter and €20 a month for Pro, + VAT, and each plan covers one workspace. There are no usage charges today: work over a limit is refused, apps on V8 isolates and Functions stop until the monthly reset, and containers and static sites keep serving.
- **Company:** registered as a business in Warsaw, Poland. Apps are hosted on European infrastructure run by Scaleway, a French provider. If you connect GitHub or GitLab, those two US companies become subprocessors.
- **What it lacks:** preview deployments, KV, R2, Durable Objects, queues and a worldwide edge network. A plain HTML folder without a build gets no `_redirects`, custom 404 page or SPA fallback. ISO 27001 and SOC 2 audits are under way, and neither certificate is held yet.

The step-by-step move is in [Cloudflare Pages alternative in Europe](/docs/guides/migrate-from-cloudflare-pages), and a feature table is in [Eurobase vs Cloudflare](/compare/cloudflare).

## 2. statichost.eu

statichost.eu is a static hosting service with a Stockholm address, built by its founder to avoid US clouds. Its FAQ lists servers, CDN, DNS and tooling as European, with no AWS or Cloudflare anywhere. It clones from any Git host, private repositories included, and ships presets for Astro, Hugo, Eleventy, SvelteKit, Next.js and plain HTML.

- **Best for:** static-only Pages projects that should keep push-to-deploy with no US provider involved.
- **Price:** the free Hobby plan gives you 100 build minutes, 10 GB of bandwidth and a single site. Paid plans cost €9 a month for Starter, with unlimited sites and 500 GB, and €49 a month for Professional, with 1 TB. Bandwidth past the allowance costs €1 per 10 GB.
- **What it lacks:** server code, which appears only in its enterprise offer, and preview links for branches and pull requests, which it lists as coming soon. Every plan serves from a Europe-wide CDN, and paid plans can add a worldwide one.

## 3. Bunny.net

Bunny.net belongs to BunnyWay d.o.o., whose address is in Ljubljana. A static site there is a storage zone holding your built files, with a pull zone in front that serves them from its CDN. The `bunny sites` command, still in public preview, creates both, builds your framework and uploads the output, and `bunny sites ci init` adds a GitHub Actions workflow that deploys each push to main.

- **Best for:** sites with readers on several continents, built in a pipeline you already run.
- **Price:** at least $1 a month. Delivery from Europe and North America is $0.01 per GB on the standard network, and standard storage is $0.01 per GB in each storage region.
- **What it lacks:** a build service of its own: the build runs on your machine or in GitHub Actions. Storage regions include places outside Europe, such as New York and Singapore, so pick a European region on purpose.

## 4. Codeberg Pages

Codeberg e.V., a non-profit association in Berlin, runs the Codeberg Git host. Its Pages service publishes a public repository or branch at `username.codeberg.page` or on your own domain, with support for redirects and custom 404 pages.

- **Best for:** docs and homepages of open-source projects.
- **Price:** free, funded by members and donations.
- **What it lacks:** room for closed or commercial projects, since Codeberg is meant for free and open-source work. It serves files only.

## 5. Clever Cloud

Clever Cloud is a French platform. Its Static runtime runs your build command or a generator it detects, serves the output with Static Web Server, and sits in the same account as any Node.js or Python backend.

- **Best for:** moving the frontend into the account where your API and database already live.
- **Price:** billing is per second for each instance according to its size, and sign-up includes free credits with no card required.
- **What it lacks:** a fixed monthly price; its calculator gives you an estimate. Pages Functions become a separate app you deploy and pay for.

## Which one fits your project

- **Eurobase** for a framework adapter, D1 or server routes at a fixed monthly price.
- **statichost.eu** for static files where every provider must be European.
- **Bunny.net** for readers on several continents and a build your CI already runs.
- **Codeberg Pages** for free open-source documentation.
- **Clever Cloud** to keep the site beside a backend already there.
- Stay on **Cloudflare** if previews for every pull request, KV or R2 matter more than having a European provider. If you're moving to Workers instead, compare [European Cloudflare Workers alternatives](/i/european-cloudflare-workers-alternatives) first.

## Frequently asked questions

### Is there a European version of Cloudflare Pages?

Not a one-to-one copy. Eurobase covers the adapters and D1, statichost.eu covers Git-built static sites, and neither offers a preview per pull request today.

### Is Cloudflare Pages being shut down?

The Pages docs give no end date. They say Workers covers most Pages use cases and that new projects should start on Workers, and Cloudflare publishes a guide for moving existing Pages projects there.

### Do my `_redirects` and `_headers` files still work?

On Eurobase, yes, for apps on V8 isolates, which read both from the build output, though a status 200 rewrite must point to a path on your own site. On Clever Cloud you move the rules into the web server's config.

### What happens to Pages Functions when I move?

They have to be rewritten. On Eurobase each handler becomes a framework server route or a TypeScript Function. statichost.eu and Codeberg Pages serve files only, and Bunny.net runs code only through Edge Scripting, a separate product.

### Is there a free European alternative to Cloudflare Pages?

Yes. Eurobase gives you 2 projects and statichost.eu 1 site at no cost, and Codeberg Pages charges nothing for public open-source repositories. More free static hosts are compared in [static site hosting in Europe](/i/static-site-hosting-europe).

## Sources

- [Cloudflare Pages overview](https://developers.cloudflare.com/pages/), [Pages limits](https://developers.cloudflare.com/pages/platform/limits/), [Pages Functions pricing](https://developers.cloudflare.com/pages/functions/pricing/), [Pages preview deployments](https://developers.cloudflare.com/pages/configuration/preview-deployments/), [Serving Pages](https://developers.cloudflare.com/pages/configuration/serving-pages/) and [Migrate from Pages to Workers](https://developers.cloudflare.com/workers/static-assets/migration-guides/migrate-from-pages/)
- [Workers pricing](https://developers.cloudflare.com/workers/platform/pricing/) and [Cloudflare terms](https://www.cloudflare.com/terms/)
- [statichost.eu](https://www.statichost.eu/) and [statichost.eu pricing](https://www.statichost.eu/pricing/)
- [Bunny.net pricing](https://bunny.net/pricing/), [Bunny CDN pricing](https://bunny.net/pricing/cdn/), [Bunny Storage pricing](https://bunny.net/pricing/storage/), [Bunny privacy policy](https://bunny.net/privacy/) and [static site hosting on Bunny Storage](https://bunny.net/docs/storage/static-site-hosting)
- [Codeberg Pages docs](https://docs.codeberg.org/codeberg-pages/) and [What is Codeberg](https://docs.codeberg.org/getting-started/what-is-codeberg/)
- [Clever Cloud Static runtime](https://www.clever.cloud/developers/doc/deploy/applications/static/) and [Clever Cloud pricing](https://www.clever.cloud/pricing/)
- [Move from Cloudflare Pages](/docs/guides/migrate-from-cloudflare-pages), [Eurobase Workers docs](/docs/workers), [Eurobase plans](/docs/plans), [Eurobase pricing](/pricing) and [Eurobase subprocessors](/legal/subprocessors)
