Skip to content

Backend app requirements

Backend (server-rendered) apps run on your own App VM. Support is alpha: today that means Next.js with standalone output, built with npm, pnpm, or Yarn classic. This page lists exactly what's checked at import time and how to fix each case. For what alpha means across the platform, see Alpha status.

When you import a repo, Stasho inspects it and blocks the Deploy button if your app would fail its first deploy — each block links to the matching section below. Fixes take effect after you push and re-open the import screen.

A warning notice in the import screen. Its lead line reads 'App VM backends are an alpha feature — supported setups are listed in the guide', with 'the guide' as a link. Below it the blocker's own wording, ending in a 'Learn more' link, and below that a link reading 'My config already sets standalone — deploy anyway'.
What a blocked import looks like. Each blocker links to its section here, and the standalone check offers an override.

Standalone output

App VM deploys package your app as a self-contained bundle: a server.js entrypoint at the bundle root with everything it needs to run. Next.js only produces that layout with the standalone output mode:

js
// next.config.js
module.exports = {
  output: "standalone",
}

Add the setting, push, then re-open the import screen.

The import check is a plain-text scan of your next.config.*. If your config sets output indirectly (a variable, a spread, a wrapper), the check can't see it — use the "deploy anyway" link in the import screen; the deploy itself verifies the real build output either way.

Nuxt

Nuxt server apps are detected, but there's no App VM build adapter for Nuxt yet, and Nuxt repos can't be re-targeted to a static deploy at import time — the import screen blocks the Deploy button entirely for now.

Your options today:

  • Wait — adapters are prioritized by demand during alpha. Nuxt is next in line if enough imports ask for it.
  • Host the prerendered output elsewhere for now — if your app can nuxt generate, you can deploy the static output to another host until App VM support lands here.

Package managers

For monorepo workspace members, App VM builds support npm, pnpm, and Yarn classic (v1) workspaces. Two package managers are still blocked:

  • Yarn Berry (v2+) — its install flags and Plug'n'Play layout differ from classic Yarn, and its build output hasn't been verified yet. Switch the repo to Yarn classic, pnpm, or npm workspaces, or watch this guide for updates.
  • Bun — Bun workspace builds haven't been verified yet. Use npm, pnpm, or Yarn classic workspaces for now.

Single-package repos aren't affected by this check at all: they always build with npm regardless of which lockfile is committed.


Alpha means these constraints shrink over time — when an adapter or package manager gains support, existing blocked imports simply stop being blocked; nothing on your side needs migrating.

See it in the demo

The demo API project shows a live App VM deployment: standalone Next.js output, its own domain, and workspace details.