Deploy it
Unzip the export first, so the commands below run from inside the folder that contains index.html.
aws s3 mb s3://your-site-bucket
aws s3 website s3://your-site-bucket --index-document index.html --error-document 404.html
aws s3 sync . s3://your-site-bucket --deleteThe bucket-policy.json you need
Make the objects publicly readable — S3 buckets are private by default.
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-site-bucket/*"
}]
}Custom domain
S3 website endpoints do not speak HTTPS. You put CloudFront in front, request a certificate in ACM in us-east-1, and alias the domain at the distribution.
What it costs
Storage and requests are billed by usage from the first byte once the introductory free tier lapses — the only host here with no permanent free plan.
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 Amazon S3 for free?
Storage and requests are billed by usage from the first byte once the introductory free tier lapses — the only host here with no permanent free plan.
›Do I need a build step to deploy a Framer export to Amazon S3?
No. A Framer export is already built output, so the build command stays empty. Amazon S3 serves the files as they are.
›How do I point my own domain at Amazon S3?
S3 website endpoints do not speak HTTPS. You put CloudFront in front, request a certificate in ACM in us-east-1, and alias the domain at the distribution.
›What usually goes wrong when deploying a Framer export to Amazon S3?
The S3 website endpoint and the S3 REST endpoint are different hostnames with different behaviour. Point CloudFront at the REST endpoint and directory URLs stop resolving to index.html, so every page except the homepage 404s.