Deploy it
Unzip the export first, so the commands below run from inside the folder that contains index.html.
npm i -g surge
cd my-framer-export
surge . yourdomain.comThe CORS you need
Optional — allow cross-origin asset requests if you serve fonts from elsewhere.
*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.
Before you move the domain
- 1. Deploy to the host's own subdomain and open every page from the nav.
- 2. Visit a URL that does not exist and confirm you get a real 404, not a 200.
- 3. Submit any form on the site — exported forms post nowhere until you rewire them.
- 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.