Hosting / Next.js
Next.js hosting in Europe
Deploy a Next.js app to European infrastructure from your Git repository, with no build or start command to set. Eurobase (eurobase.dev) builds it with OpenNext and runs it on V8 isolates.
At a glance
| Runs as | V8 isolates |
|---|---|
| Versions | next 14.2.35 or later |
| Build | OpenNext (@opennextjs/cloudflare), added during the build |
| Deploys from | GitHub, GitLab.com, self-managed GitLab, Codeberg, Forgejo and Gitea |
| Where it runs | European infrastructure only |
Deploy Next.js in Europe
- Push your app to a Git repository, or copy the Next.js template.
- Create an account, then create a project from the repository. GitHub connects with the Eurobase app, and other Git hosts with a read-only token and a webhook.
- Eurobase detects Next.js. There's no build or start command to set.
- Select Save and Deploy. Your app goes live at
<name>.eurobase.dev. - Connect your own domain from Domains.
A coding agent can do this for you from a GitHub repository: deploy with Claude Code, Codex or Cursor.
Read the Next.js guideWhat works
- The App Router, server rendering and route handlers.
- Edge middleware, which doesn't run for static assets or cached responses.
use cache,fetchcaching and ISR pages, stored on Eurobase when your repository has no Wrangler config.revalidateTagandrevalidatePath.- Each deployment renders up to 16 pages first. If one fails, the deployment stops and the previous one keeps serving.
- Response caching when your app sends cache headers, with purge by tag or path. See Cache.
- Deploys on every push, rollback from Deployment history, secrets and request logs.
What doesn't work
next/imageserves each image at its original size. Resize images before you add them.- OpenNext support for Node.js middleware, including Next.js 16
proxy.ts, is experimental. export const runtime = 'edge'isn't supported. Remove it.- A Cache Components page renders on each request.
- Next.js 14 and 15 are past their end of life, so their deployments carry a warning.
- Next.js responses are cached only when your app sends
CDN-Cache-Control. - A custom Node server, such as
node server.js, makes the project a container.
Limits for all apps on V8 isolates:
- Postgres and MySQL drivers that connect over TCP won't work. Use your database's HTTP API.
- Each request gets 30 s of CPU on paid plans, or 50 ms on the Free plan with a 2 s reserve that refills. See Runtime limits.
- An instance has 128 MiB of JavaScript heap, and the bundle can be up to 10 MiB compressed.
eval()andnew Function()don't work during a request.- Commit exactly one lockfile, or the deployment stops.
- On
<name>.eurobase.dev, cookies written by browser code reach your server only with a__Host-js-name. See Cookies in your app.
Not available on Eurobase:
- Preview deployments for branches and pull requests.
- Managed Postgres, MySQL or Redis.
- Dockerfile builds.
- Key-value stores and queues for apps on V8 isolates.
Pricing
| Limit | Free | Starter | Pro |
|---|---|---|---|
| Price | €0 / month | €10 / month + VAT | €20 / month + VAT |
| Projects | 2 | 10 | 20 |
| Deployments per day | 20 | 100 | 500 |
| Workers CPU per month | 50 min | 500 min | 1,666⅔ min |
A flat monthly price per workspace, with no charges for usage. Once Workers CPU runs out, apps on V8 isolates stop until the monthly reset. See every limit.
Move an existing Next.js app
Other frameworks
Deploy Next.js on the Free plan
Create account