---
title: "Deploy Next.js over MCP with while.sh"
url: https://while.sh/en/guides/deploy-nextjs/
author: "Aloïs Oddon, co-founder of Nextmap"
updated: 2026-11-02
---

# Deploy a Next.js app from your AI agent, over MCP

Your AI agent wrote your Next.js app. Connected to while over MCP, it also deploys it, over HTTPS, and you choose who can open it: everyone, your customers or your colleagues.

## Prerequisites

- A Next.js app.
- An AI agent that works in a terminal: Claude Code, Codex, Cursor or Gemini CLI.

## Step 1: Give your agent these instructions

Open your agent in your app's folder, and paste these instructions into it:

```text titre="Instructions"
Connect to while with my account (while.sh/agents), then deploy my app.
```

Without an account, your agent deploys your app as a trial, in one request. To keep it, open the link it gives you and create your account.

With your account, your agent adds while's MCP server itself. If it asks you to, restart it. On the first call to while, a page opens in your browser. In Claude Code, if it doesn't open, type /mcp, choose while, then Authenticate. On that page, choose your app, or "A new app", then click Authorize.

## Step 2: Open your app

Your agent gives you your app's address, for example `https://mon-appli.while.cloud`, over HTTPS.

## What your agent does

It writes while.yaml at the root of your app:

```yaml titre="while.yaml"
apiVersion: while/v1
project: mon-appli
services:
  - name: web
    port: 3000
    health:
      path: /
```

Port 3000 is the port of `next start`, which reads the `PORT` variable (source 1). Your app is built, its tests run, and then it starts. It only receives visitors once its home page is ready.

## Restrict the app to your colleagues

> You, to your agent: Restrict the app to people in the company.

Your agent adds two lines to the service:

```yaml titre="while.yaml"
    access: internal
    email_domains: [acme.com]
```

Once your Google Workspace or Microsoft 365 is linked to while, on the Pro plan, your colleagues open it with their usual account, and your app receives their name and email address, with no sign-in page to write.

## Share with a customer, protected by a password

> You, to your agent: Open the app to our customer, with a password.

Your agent makes the app private. Then, on the app's page in while, you create a link that lasts 1, 7 or 30 days, with a password your agent will never see.

## Add a database

> You, to your agent: Add a PostgreSQL database for bookings.

Your agent declares the database in while.yaml, and its address reaches your app in `DATABASE_URL`. It is backed up every day. The details are in the guide to the Node.js API and its PostgreSQL database.

## Put the app on your domain

> You, to your agent: Put the app on planning.acme.com.

Your agent declares the domain, you add the DNS records it gives you, and the HTTPS certificate follows.

## See a new version before you deploy it

> You, to your agent: Show me the new page before you deploy it.

Your agent opens a preview, at its own address, with its own data. You look at it, and then your agent puts it into production.

## Go back to the previous version

> You, to your agent: Go back to the previous version.

In the 30 minutes after a deployment, the previous version comes back in a second. After that, it takes a few seconds. Once the previous version is back, your agent reads what broke in while's logs, fixes it and deploys again.

## Next steps

- [Deploy a Node.js API and its PostgreSQL database](/en/guides/deploy-node-api-postgresql/)
- [Restrict your app to people in your company](/en/guides/internal-tool-company-sign-in/)
- [Compare the hosts that have an MCP server](/en/comparisons/mcp-hosting-claude-code/)

## Sources

1. [Next.js, the next command and its options (next start, PORT)](https://nextjs.org/docs/app/api-reference/cli/next), 2026-11-01

## Questions

### Do I need to change my code to leave Vercel?

No. A Next.js app that starts with next start works as it is, and your agent carries over your environment variables.

### Do I need to write a Dockerfile?

No. Your Next.js app is detected as a Node app, built and started without a Dockerfile. If your project has one, it is used to build the image.

### Does my Next.js app receive the name of the signed-in person?

Yes. When it is restricted to your company, it receives the name and email address of the signed-in person, with no sign-in page to write.

### What if my app isn't built with Next.js?

Express, NestJS, Nuxt, Vite with React, an Astro site and a Go server deploy the same way.
