---
title: "How to deploy a Next.js app"
description: "Deploy a Next.js app to Ample with your coding agent, the CLI or MCP, using build and start commands verified on September 19, 2026."
canonical_url: "https://ample.computer/guides/next-js"
last_updated: "2026-09-19"
author: "Ample Computer"
---

# How to deploy a Next.js app

Deploy a Next.js app to Ample with your coding agent, the CLI or MCP, using build and start commands verified on September 19, 2026.

## The short version

To deploy a Next.js app on Ample, run `ample deploy . --name <app-name> --public` in the project directory, or ask your coding agent to deploy it to Ample. Ample builds it on the `node-22` template, starts it with `npm run start` and returns a public HTTPS URL.

## Deploy Next.js

1. **Ask your coding agent.** Install the Ample CLI and create an account, then ask your agent: "Deploy this Next.js app to Ample".

   ```sh
   curl -fsSL https://get.ample.computer/install.sh | sh
   ample auth signup
   ```

2. **Or deploy from the CLI.** It waits until the app is live or failed and prints the URL.

   ```sh
   ample deploy . --name <app-name> --public
   ```

3. **Or use MCP.** Call `ample_deploy` on `https://api.ample.computer/mcp` (or `ample mcp` over stdio).
4. **Verify.** On failure read `ample logs <deployment_id> --kind build`, fix the cause and deploy again.

## Tested configuration

| | |
|---|---|
| Template | `node-22` |
| Install | `npm install` |
| Build | `npm run build --if-present` |
| Start | `npm run start` |
| Tested size | `s-1vcpu-1gb` |

js app on Ample. A server-rendered app runs next build then next start on the node-22 template with the detected package manager; a static export is published as a static site. The app must bind 0.0.0.0 on PORT.

Last verification (2026-09-19): Next.js 15 SSR app (next build, next start) deployed on node-22; the page and an API route served correctly.

## You need

- A package.json with build and start scripts (next build, next start -H 0.0.0.0 -p ${PORT:-3000})
- Node 22 compatible dependencies
- An Ample account token with servers:write

## Know the limits

- Verified on the node-22 template at s-1vcpu-1gb; other templates and sizes are not verified by this recipe.
- Next.js 15 was tested; other majors are not verified.
- Image optimization, ISR and middleware behavior are not verified.

## Move a Next.js app to Ample

- [How to move a Next.js app from AWS EC2 to Ample](https://ample.computer/migrate/aws-ec2-app/next-js)
- [How to move a Next.js app from DigitalOcean Droplet to Ample](https://ample.computer/migrate/digitalocean-droplet-app/next-js)
- [How to move a Next.js app from Fly.io to Ample](https://ample.computer/migrate/fly-io-app/next-js)
- [How to move a Next.js app from Heroku to Ample](https://ample.computer/migrate/heroku-app/next-js)
- [How to move a Next.js app from Netlify to Ample](https://ample.computer/migrate/netlify-web-app/next-js)
- [How to move a Next.js app from Railway to Ample](https://ample.computer/migrate/railway-app/next-js)
- [How to move a Next.js app from Render web service to Ample](https://ample.computer/migrate/render-web-service/next-js)
- [How to move a Next.js app from Vercel to Ample](https://ample.computer/migrate/vercel-app/next-js)

## Frequently asked questions

### Do I need a Dockerfile to deploy Next.js?

No. Ample detects Next.js from the repository and builds it from source on the `node-22` template. Dockerfile build steps are not run.

### How do I add a database to a Next.js app?

Leave DATABASE_URL unset and deploy: when the code needs Postgres, MySQL, Redis or MongoDB, Ample creates a managed database and passes its connection string to the app. See [Connect Postgres for Next.js](https://ample.computer/guides/next-js/database-connection).

### What does it cost to host a Next.js app on Ample?

The Free plan runs 2 apps at once with no card and a hard monthly budget, so it never bills you. Larger needs are priced on volume; see [pricing](https://ample.computer/pricing).

### What if the deploy fails?

`ample deploy` waits until the app is live or failed. A failure returns who must act, a diagnosis and a suggested fix; read the logs with `ample logs <deployment_id> --kind build`. See [Diagnose deployment failures for Next.js](https://ample.computer/guides/next-js/deployment-diagnostics).

## More for Next.js

- [How to serve Next.js public assets through a CDN on Ample](https://ample.computer/guides/next-js/cdn-assets): Deliver public assets for a Next.js app through the Ample CDN
- [How to set environment variables and secrets for a Next.js app on Ample](https://ample.computer/guides/next-js/configuration-secrets): Configure environment variables and secrets for a Next.js app on Ample
- [How to connect a Next.js app to Postgres on Ample](https://ample.computer/guides/next-js/database-connection): Connect a Next.js app to PostgreSQL on Ample from a route handler
- [How to fix a failed Next.js deploy on Ample](https://ample.computer/guides/next-js/deployment-diagnostics): Diagnose a failed Next.js deployment on Ample
- [How to use S3-compatible storage from a Next.js app on Ample](https://ample.computer/guides/next-js/object-client): Configure S3-compatible access for a Next.js app on Ample
- [How to serve private files from a Next.js app on Ample](https://ample.computer/guides/next-js/private-file-access): Enforce private-file authorization in a Next.js app on Ample
- [How to run database migrations for a Next.js app on Ample](https://ample.computer/guides/next-js/schema-changes): Schema changes for a Next.js app on Ample
