August 16, 2026
How to Create a Self-Hosted Framer Preview Before Going Live
Export a Framer site, preview it on independent hosting, and launch with a practical rollback plan.
Framer makes it wonderfully quick to get a polished site into the world. The awkward moment comes when you want to change hosting, validate an exported copy, or simply prove that the site still works outside the editor. You do not need to make that a big-bang migration.\n\nThis guide shows how to create a self-hosted Framer preview before you point real visitors at it. You will need a published Framer URL, access to a Git repository or static host, and a place to keep deployment credentials private. The result is a reviewable static copy, a short launch checklist, and a simple path back if something is missing.\n\n## 1. Decide What the Preview Must Prove\n\nStart with a narrow goal: the preview should prove that your public pages, navigation, styles, scripts, and media can load outside Framer. It is not the place to redesign the site.\n\nMake a small list of URLs to check: the home page, your primary conversion page, a contact or checkout handoff, and any page with custom code or animation. If your site depends on a form provider, analytics, or an external booking tool, add those interactions too. This keeps the preview focused on the things a visitor can actually break.\n\nIf you are unsure how much of the site needs to move, the earlier guide on exporting a Framer site to HTML, Git, or S3 is a helpful scope check. The expected result here is a plain checklist you can finish in one review session.\n\n
\n\n## 2. Export the Published Framer URL Into Static Files\n\nUse ExFlow as the Framer exporter. Enter the published site URL, then select the parts you want included: CSS files, JavaScript files, images and other media, and all pages. Use the .html page extension option if your destination host benefits from explicit HTML files.\n\nThe most important setting is Export All Pages. A home-page-only test can look perfect while a pricing, policy, or campaign URL fails after launch. You can also add custom script.js or style.css files if your preview needs a small host-specific adjustment, but keep those changes documented so they are not mistaken for Framer edits.\n\nWhen the export finishes, download the static output or configure a Git sync. Do not paste Git, FTP, or S3 credentials into notes or screenshots; enter them only in the sync configuration and keep them in your normal secret-management process. The expected result is a folder or repository containing HTML pages plus the CSS, JavaScript, and media they reference.\n\n## 3. Put the Export on a Non-Production Preview URL\n\nCreate a preview destination that is separate from your live domain. A branch deployment, a staging subdomain, or an unlisted static-hosting project all work. The point is to let teammates test the exported build without changing the production DNS record.\n\nFor a Git-based path, connect ExFlow’s Git sync to a repository, or commit the exported files yourself. Then configure the host to serve the exported root and use the preview URL in your checklist. If GitHub Pages is your destination, this Framer-to-GitHub Pages walkthrough shows the basic hosting flow.\n\nOpen the preview in an incognito window and on a phone. Incognito matters because logged-in sessions and cached assets can hide missing files. The expected result is that the preview URL returns the same important pages without redirecting back to Framer.\n\n
\n\n## 4. Run a Visitor-Focused Static-Site Check\n\nCheck each URL from step 1, then use the browser’s developer tools to spot failed network requests. Pay special attention to:\n\n1. navigation links and deep links, including pages opened directly;\n2. image, font, video, and downloadable-file paths;\n3. custom scripts, cookie notices, analytics, and embedded forms;\n4. mobile layout and the first interactive action on each key page.\n\nA static export preserves the published site assets; it does not turn server-side features into static files. If a form, search feature, or membership component uses a third-party service, confirm that its embed or endpoint still loads on the preview domain. Record every mismatch as either an export setting to revisit or a host-specific adjustment.\n\nTreat the result like a pre-launch runbook, not a visual opinion poll. The Webflow CMS-to-static pre-launch checklist offers a useful parallel: test the route, asset, and interaction together before declaring the move ready.\n\n## 5. Choose a Launch Path You Can Reverse\n\nOnce the preview passes, choose the smallest production change. You might publish the same static output through ExFlow hosting, sync it to S3 or FTP, or deploy the repository on your preferred static host. Keep the current Framer domain configuration and the exported revision available until the new copy has been observed in production.\n\nBefore changing DNS or a custom-domain setting, write down three things: the current target, the new target, and the exact reversal step. This can be as simple as restoring the old DNS record or switching the custom domain back to its previous host. A rollback plan is useful even when the preview is flawless; it gives the team a clear response if an external integration behaves differently on the real domain.\n\nFor a wider deployment-and-QA perspective, see this static site cutover runbook. The expected result is a release decision that does not depend on memory or a last-minute scramble.\n\n
\n\n## 6. Keep the Preview Useful After Launch\n\nA self-hosted preview is more than a one-time migration safety net. Keep it as a repeatable release pattern: export the current Framer URL, deploy it to preview, run the same checks, then promote the verified revision. If you change hosting later, you already have the steps and validation list.\n\nExFlow can export the Framer site as static downloadable content and supports syncing to Git, S3, or FTP when that fits your workflow. Start with one non-critical page group, confirm the preview is complete, and only then move the primary domain.\n\nThe next action is simple: create a preview target today, export your Framer site with ExFlow, and test four visitor journeys before you change a production setting. That gives you control of the static files without asking your live site to be the experiment.