Skip to main content
Deploy guide

Host a Framer site on Surge

A single-command publishing tool for static sites, aimed at getting a folder onto the web in one line with no dashboard at all.

Deploy method
Surge CLI
Build step
None needed
Config file
CORS

Deploy it

Unzip the export first, so the commands below run from inside the folder that contains index.html.

Surge — deploy
npm i -g surge
cd my-framer-export
surge . yourdomain.com

The CORS you need

Optional — allow cross-origin asset requests if you serve fonts from elsewhere.

CORS
*
The thing that breaks on Surge
Surge serves 200.html as the fallback for unknown paths. If you do not add one, unknown URLs return a bare Surge error page rather than your own 404 — bad for both users and crawl signals.

Custom domain

Pass the domain as the second argument to the surge command, then add a CNAME to na-west1.surge.sh.

What it costs

Publishing and custom domains are free; HTTPS on a custom domain is the paid upgrade.

Best fit
Throwaway staging links and client previews you want up in ten seconds.

Before you move the domain

  1. 1. Deploy to the host's own subdomain and open every page from the nav.
  2. 2. Visit a URL that does not exist and confirm you get a real 404, not a 200.
  3. 3. Submit any form on the site — exported forms post nowhere until you rewire them.
  4. 4. Only then move DNS, and keep the Framer plan active for one more cycle as a rollback.

Questions

Can I host a Framer site on Surge for free?

Publishing and custom domains are free; HTTPS on a custom domain is the paid upgrade.

Do I need a build step to deploy a Framer export to Surge?

No. A Framer export is already built output, so the build command stays empty. Surge serves the files as they are.

How do I point my own domain at Surge?

Pass the domain as the second argument to the surge command, then add a CNAME to na-west1.surge.sh.

What usually goes wrong when deploying a Framer export to Surge?

Surge serves 200.html as the fallback for unknown paths. If you do not add one, unknown URLs return a bare Surge error page rather than your own 404 — bad for both users and crawl signals.