Production Starter

How to deploy an Astro site to FTP and shared hosting

Astro's static build produces plain HTML, CSS, and JavaScript files. Those files deploy to any FTP host — no Node server, no database, no server configuration required.

Confirm static output in astro.config.mjs

Astro uses static output by default when no server adapter is installed. Set output: 'static' explicitly to be safe. Run astro build — the output lands in dist/.

Configure trailing slash behavior

Set trailingSlash: 'always' in astro.config.mjs to ensure consistent URL behavior across your shared host.

Upload dist/ contents via FTP

Upload the contents of dist/ to public_html/ — not the folder itself. After upload, public_html/index.html should exist.

Configure .htaccess for 404

Astro generates a 404.html at the root of dist/. Add ErrorDocument 404 /404.html to your .htaccess.

How Production Starter handles this

Every Production Starter kit is configured for FTP deployment out of the box. The back office deploys alongside the front end — one build, one FTP upload, both sides live.

Full deployment overview