Next.js Frontends

Get your Next.js app from source to a live URL

Deploy Next.js 15 or 16 from source. Volcano builds your app, serves it over HTTPS and keeps the live site running if the next build fails.

Next.js Frontends product screenshot
frontends
volcano cloud variables deploy4 variables synced · NEXT_PUBLIC_* inlined at build timevolcano cloud frontends deploy --name web --path . --app-root apps/web --variable-scope all✓ Frontend 'web' deployment startedvolcano cloud frontends logs web --type buildnext build · node 24 · pnpm 9 · 41 routesvolcano cloud frontends get webStatus  active   https://<frontend-id>.frontends.volcano.run# the previous deployment served every request while this one built
Overview

Ship the app without running a build server

Your Next.js app needs more than a build: dependency installation, a server for dynamic routes and a way to publish updates without taking the site down.

Upload your source with the Volcano CLI. Volcano installs dependencies, builds the app and serves static files from a CDN. Routes that render per request run on managed servers.

Cloud builds

Build from the source you already have

Upload your app and its lockfile. Volcano installs dependencies and runs your build script, or next build if no script is defined.

  • Node 22 or 24, selected from engines.node
  • npm, pnpm and Yarn supported
  • Choose the package manager in package.json
cloud build
packaging ~/acme            workspace rootapp root  apps/webruntime   node 24 · pnpm 9next build · 41 routes · 12 prerendered✓ artifact ready · promoting behind the CDN
Delivery

Serve cached pages without running your app

The CDN caches static files, prerendered pages and optimized images. Dynamic routes run when requested, and pages that read cookies stay out of the shared cache.

  • Built-in resizing for next/image
  • Image optimization without a custom loader
  • HTTPS enforced and IPv6 enabled
A Next.js storefront hosted on Volcano
Releases

Keep serving while the next build runs

A failed build leaves the live deployment running. Check the build log to find the error before trying again.

  • Deployment status and build logs
  • New deploys replace older queued work
  • Redeploy from the latest uploaded source
deployment history
d-43   active       next 16 · node 24 · 2m agod-42   failed       type error in apps/web/app/page.tsxd-41   skipped      d-42 arrived before this one builtd-40   replaced     served every request until d-43 was ready✓ traffic moves only when a build succeeds
Capabilities

Hosting for the whole Next.js app

Next.js 15 and 16

App Router, Pages Router, server components, route handlers, server actions and ISR. There’s no adapter to add.

Global CDN with HTTPS

Cache static files and pages across a global network with HTTPS and IPv6.

Image optimization

Use next/image to resize and optimize images without a custom loader.

Monorepo builds

Upload the workspace root and select the app with --app-root, keeping shared packages available.

Custom domains

Use your own domain with a certificate Volcano manages or one you supply.

Deployment history

Check deployment status and build logs when an update fails.

Code

Deploy, add login and connect your domain

Shell
# A new frontend gets only the project variables you select, for the build # and the server runtime: all of them, or the names you list. volcano cloud variables deploy # Single app, with every project variable volcano cloud frontends deploy --name web --path ./apps/web --variable-scope all # Monorepo: package the workspace root, build one member, select by name volcano cloud frontends deploy --name web --path . --app-root apps/web --variable-scope scoped \ --variable NEXT_PUBLIC_VOLCANO_API_URL --variable NEXT_PUBLIC_VOLCANO_ANON_KEY # NEXT_PUBLIC_* is inlined into the client bundle during the build, so # changing one needs a redeploy. That is Next.js behaviour, not a Volcano one. volcano cloud frontends redeploy web volcano cloud frontends list volcano cloud frontends get web volcano cloud frontends logs web --type build volcano cloud frontends logs web --type runtime --follow
Use cases

What people host on it

next build
○  /                    static     prerendered●  /blog/[slug]         SSG        ISR 3600sƒ  /api/subscribe       dynamic    route handler✓ static output cached at the edge
Platform

Works with the rest of Volcano

Databases and vector
  • Postgres behind your routes

    Query project data from route handlers with the same SDK used in the browser.

Authentication
  • Login before a page renders

    Use authentication helpers in middleware to validate sessions and redirect visitors to login.

File storage
  • Uploads from the browser

    Upload files to storage buckets with access policies and serve public files by URL.

Functions and agents
  • Jobs beyond a page request

    Move exports and imports into functions. Use durable functions for work that waits or resumes after interruption.

Frequently asked questions

Read the docs
Can I host Next.js 15 and 16 on Volcano?

Yes. Volcano hosts Next.js 15 and 16, with the App Router or Pages Router, static export and server-rendered routes. Next.js is the only framework it hosts today, and there’s no adapter to add.

Which Node versions and package managers can I use?

Volcano supports Node 22 and 24 with npm, pnpm or Yarn. Set engines.node in package.json; without it, builds use Node 22. The packageManager field selects the package manager, with lockfile detection as the fallback.

How do I deploy a Next.js monorepo?

Upload the workspace root and select the app: volcano cloud frontends deploy --name web --path . --app-root apps/web. Shared workspace packages remain available during the build.

Can I host Next.js on my own domain?

Yes, on every plan: one custom domain per frontend on Hobby and up to 10 on Superagent. Attach the domain, publish the DNS records Volcano returns, and use a managed certificate or your own. The Volcano hostname keeps working while DNS propagates.

Will a failed Next.js build take my site down?

No, a failed redeploy leaves the previous deployment serving traffic. The failed attempt is recorded so you can inspect its build log.

How do I set Next.js environment variables on Volcano?

Select project variables on deploy with --variable-scope all, or --variable-scope scoped and a --variable flag for each name. NEXT_PUBLIC_* values are embedded at build time and excluded from the server runtime environment, so changing them requires a redeploy. Use unprefixed names for server secrets.

Deploy your Next.js app

Build, deploy, and scale on Volcano's global platform — free to start, with no infrastructure to manage.

Checkout more features