Astro
output: static
output: static is the Astro default that renders every page to a file during the build. The result can be hosted on any static file server.
How it is measured
Leave output at static, or set it explicitly. The build writes HTML, CSS, and assets to dist/. No adapter is needed unless a route opts into on-demand rendering.
Verify by uploading dist/ to any static host and checking every page loads. Count files, and compare build time with page count.
Worked example
A museum's exhibit site has 420 pages from a collection. A static build takes 53 seconds and produces 420 HTML files and 1,100 assets. They go to a bucket behind a CDN for pennies a month.
The curator adds a "report a problem" form. The site stays static, with the form posting to a third-party service, because no server exists to receive it.
How it differs
output: static builds all pages ahead. output: server renders on request. Static excludes per-visitor data at the origin; server excludes pure file hosting.
Common errors
Expecting cookies or headers to be available in a page. Building huge sites and hitting long build times. Forgetting to rebuild after content changes. Using POST endpoints that have nowhere to run. Not setting site for sitemaps.
In practice
Stay static as long as the data can wait for the next build. Automate rebuilds on content change. If one route needs a server, mark that route instead of switching the entire site.