Fransys

Deploy Next.js in production, outside Vercel

Outside Vercel, Next.js keeps all its features. It needs a container, its static files, sharp for images and, from two instances on, a shared cache. You set that up in your repository, Fransys deploys on every push, without YAML.

No credit card, no commitment.

Stack diagramNext.js
01

Your Next.js repository

02
  1. Next.js container
  2. Redis
  3. Database
  4. Object storage
03

Kubernetes, built and run by Fransys

04

The European cloud you chose Scaleway · OVHcloud · Hetzner · Outscale

What Vercel was setting up for you

The Next.js documentation is clear: a Node.js server or a Docker container supports all its features. What Vercel set up without asking becomes your configuration: the image, static files, image optimization, the cache between instances, the clean shutdown. It fits in your repository, and the platform operates the rest.

  • 1Dockerfile at the root of the repository
  • 1deployment gesture: git push
  • 0lines of YAML to write

Next.js in production, point by point

  1. The container

    output: 'standalone' produces a .next/standalone folder that deploys without installing node_modules. Your Dockerfile, at the root of the repository, turns it into the image of the Docker block.

  2. The static files

    This minimal server copies neither public nor .next/static. Your Dockerfile places them next to the standalone folder, otherwise they are missing in production.

  3. The images

    With standalone mode, the documentation asks you to install sharp for image optimization. It goes into the image, with your dependencies.

  4. The shared cache

    By default, each instance keeps its cache in memory. From the second one on, a cache handler and a Redis block share entries and tags. Credentials are injected into the application.

  5. The variables

    NEXT_PUBLIC_ variables are frozen at build time: they must exist when the image is built. The others are set in the block, outside the repository and outside the image.

  6. The clean shutdown

    On each update, Kubernetes sends SIGTERM to the old instance. Next.js then finishes in-flight requests before stopping, and its documentation recommends giving it 10 to 30 seconds.

From push to release

  1. git push

    The commit lands on the configured branch.

  2. build

    The image is built from your Dockerfile, with your public variables.

  3. verify

    The cluster starts the new image, and the platform checks that it responds.

  4. live

    The new version receives traffic. On failure, automatic rollback to the previous one.

With your agent, or by hand

With your agentexample

Deploy my Next.js app in standalone mode, with a shared Redis cache.

  1. The agent reads your repository and prepares the plan: the blocks, each with its price.
  2. Someone on the team approves the plan.
  3. The engine executes; the new version receives traffic once verified.

The airlock, in detail

By hand

  1. Place a Docker block on the canvas, then a Redis block connected to the application.
  2. Connect your Git repository: the Dockerfile at the root is used for the build.
  3. Push to the configured branch: the release goes live.

A tour of the canvas

What people ask about Next.js

Does Fransys have a Next.js block?

Next.js goes through the Docker block, with your Dockerfile. Laravel, React, Angular and Vue have a native block; other frameworks use this one, which has the same connections, variables, metrics and logs.

Why don't my NEXT_PUBLIC_ variables change after a redeploy?

Next.js freezes them at build time, and the application no longer reacts to changes afterwards. Pass them when the image is built, in the Dockerfile or in the pipeline Fransys adds to your repository, and rebuild to change one. A value read on the server stays in the block.

How do I share the cache between several instances?

Declare a cacheHandler and set cacheMaxMemorySize to 0, as the Next.js documentation shows. Your handler stores entries in a Redis block connected to the application, which receives REDIS_HOST, REDIS_PORT and REDIS_PASSWORD. Invalidated tags are synced through Redis too.

What about streaming?

Next.js supports it outside Vercel. Behind nginx or a similar proxy, it asks you to turn off buffering: its documentation sets the X-Accel-Buffering header to no in next.config.js.

Can two versions coexist during an update?

Yes, for the time of the switch. Next.js detects this skew with deploymentId: give it the version identifier, the commit for example, read from a variable set at build time.

Which Next.js and Node.js versions?

The ones in your Dockerfile: the base image remains your choice. As of 2 November 2026, the latest Next.js release is 16.4.4, and its documentation asks for Node.js 20.9 at minimum.

To go further: the Vercel alternative in Europe and CI/CD on Kubernetes.

Your Next.js app on Fransys: where to start

See the console in demo, in your name. To cost your app, the infra plan does it line by line, machines included.

No credit card, no commitment.

Read on the blog

CostMarch 20, 20266 min

Heroku and Vercel too expensive: where to migrate in 2026?

Heroku with no free tier, Vercel bills spiralling: a comparison of European alternatives for startups. Migrate to managed Kubernetes without DevOps.

CostMarch 13, 20267 min

What does a DevOps engineer really cost in 2026? (and how to keep that spend down)

Salary, social contributions, recruitment, turnover: the real cost of a DevOps engineer in France exceeds €90,000/year. Full breakdown and alternatives for startups without DevOps.

CostFebruary 9, 202611 min

AWS vs Fransys: what does your cloud infrastructure really cost in 2026?

A detailed AWS vs Fransys comparison on European hosting. Prices line by line, and three costed startup scenarios.