A File-System Spec for Building on Vercel

Vercel has introduced the Build Output API, a file-system-based specification that lets any framework compile an application into the primitives Vercel's platform understands. The goal is to make infrastructure building blocks like Edge Functions, Edge Middleware, Incremental Static Regeneration (ISR), and Image Optimization available to every framework, not just the ones Vercel maintains.

Note: This post is historical. Product names and runtime guidance may have changed. For new projects, use Vercel Functions with the Node.js runtime and Fluid compute. Use Routing Middleware for request-time routing before a response completes.

The specification opens up two new workflows in Vercel CLI. Developers can now run vercel build to generate a deployable output locally, and vercel deploy --prebuilt to upload that output directly without triggering a build on Vercel's servers. Both commands are available in the latest CLI release, installable with npm i -g vercel.

Local Builds and Decoupled Deploys

Previously, deployments through Vercel always triggered a platform-side build. That model was convenient but created friction for teams that had already built artifacts in their own CI pipeline or that wanted to keep source code off Vercel's infrastructure.

vercel build addresses the local side: it detects the frontend framework, runs the build, and emits a .vercel/output folder conforming to the Build Output API spec. That folder contains everything needed to deploy. The --debug flag provides verbose output during the build for troubleshooting.

With vercel deploy --prebuilt, the two stages are fully separated. The output folder can be pushed from a local machine or CI system without sharing source code with Vercel.

Framework Capabilities Without Platform Coupling

By defining a standard output format, the Build Output API gives framework authors a way to target Vercel's primitives without hard-coding against any particular platform. Simply producing the right structure in .vercel/output enables support for:

  • Functions with Edge Runtime
  • Vercel Functions
  • Server-side Rendering (SSR)
  • Static Generation
  • Image Optimization

That same output can be uploaded directly with vercel deploy --prebuilt, making the local vercel build step optional if the framework has already generated the compliant folder.

The API has already been adopted by several open-source frameworks. SvelteKit and Astro can now run on the edge with Functions with Edge Runtime, and Nuxt is working on ISR support. Vercel now sponsors Svelte, Nuxt, Astro, SolidJS, and others as part of its investment in the broader framework ecosystem.

Framework authors who adopted the spec describe it as straightforward to integrate. The Nuxt team sees it as building on existing server-rendering support while preparing for ISR and edge-based SSR. SvelteKit's maintainers note that the API and vc deploy --prebuilt made their adapter-vercel easier to develop, with the newest version supporting edge rendering. Astro's adapter (@astrojs/vercel on npm) is zero-config and also unlocks edge runtime options. SolidJS reports that the file-system-driven output covers Serverless Functions, Edge Functions, Middleware, prerendering, and routing with minimal configuration required.

Next.js was the first framework to validate the API design internally before it was opened to the wider ecosystem.

Getting Started

Zero-configuration support for the Build Output API is currently available for Next.js, SvelteKit, Nuxt, Astro, Remix, Redwood, and SolidJS. Custom frameworks can reference the Build Output API documentation to generate the appropriate output structure, then use vercel build and vercel deploy --prebuilt to test and ship locally built artifacts.