Deploy it
Unzip the export first, so the commands below run from inside the folder that contains index.html.
npm i -g firebase-tools
firebase login
cd my-framer-export && firebase init hosting
firebase deploy --only hostingThe firebase.json you need
Set the public directory and turn on extensionless URLs.
{
"hosting": {
"public": ".",
"cleanUrls": true,
"trailingSlash": false,
"ignore": ["firebase.json", "**/.*"]
}
}Custom domain
Hosting → Add custom domain. Firebase walks you through a TXT verification then gives you two A records.
What it costs
The Spark plan includes hosting with a storage and transfer allowance, custom domains, and TLS.
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 Firebase Hosting for free?
The Spark plan includes hosting with a storage and transfer allowance, custom domains, and TLS.
›Do I need a build step to deploy a Framer export to Firebase Hosting?
No. A Framer export is already built output, so the build command stays empty. Firebase Hosting serves the files as they are.
›How do I point my own domain at Firebase Hosting?
Hosting → Add custom domain. Firebase walks you through a TXT verification then gives you two A records.
›What usually goes wrong when deploying a Framer export to Firebase Hosting?
Setting "public": "." without an ignore list uploads your firebase.json, any .git folder, and the original ZIP along with the site. Everything in the directory is public — check the ignore list before the first deploy.