Payload Logo

What output: 'export' Actually Gives Up

Date Published

Rows of colorful shipping containers stacked densely at a maritime port terminal

Setting a fully static export means every page is generated once, up front, and shipped as plain files — no server runtime, no middleware, no image optimization API, no server actions. For a site that's genuinely just content, that's not a limitation, it's exactly the deployment model that content wants.

Where it stops being a free win is anywhere the app quietly depended on server-side behavior: an API route used for form handling, middleware doing auth checks, an image loader resizing on request. None of that fails loudly at build time in every case — some of it just silently doesn't work once the site is live on static hosting.

The honest framing is that a static export isn't a smaller version of a Next.js app, it's a different deployment target with its own constraints — worth choosing deliberately, and worth an actual audit of what the app currently relies on before flipping the switch.