How To Host A Flourish Studio Visualisation Yourself

Downloading a Flourish Studio chart as HTML is a paid feature. Here is what the export contains, how to upload it without breaking it, and what it cannot do.
The OxyPages Team · · 9 min read
You built a chart in the Flourish Studio editor, it looks right, and now you want it living on your own site at your own address. Not on a public.flourish.studio link with somebody else's credit in the corner.
That is a reasonable thing to want, and Flourish does support it. There is one gate in front of it that nobody mentions until after you have spent an afternoon getting the chart perfect.
You need a paid plan.
The download that lets you host the chart yourself sits on the Publisher and Enterprise tiers. On the free plan you can build as much as you like and embed the result on any website you own, but the files stay on Flourish's servers. If you are on the free tier and you came here to move a chart onto your own domain, that is the whole answer, and you can stop reading now.
Still here? Then this is what the export actually contains, the one upload mistake that breaks every chart, and the limitation that catches people about a month later.
TL;DR: Downloading a Flourish Studio project as HTML is a paid feature on the Publisher and Enterprise plans. What you get is a ZIP holding index.html, JavaScript, CSS and a copy of your data, plus a how_to_embed_me.txt with instructions. Unzip it, upload the whole folder with its structure intact, then open the URL. Flatten the folder and the chart renders as an empty rectangle. And the copy you host is a snapshot: change the data in Flourish later and your hosted version will never know.
Can You Download A Flourish Studio Chart At All?
Only on a paid plan. The Download HTML option sits in the Export and publish menu, and Flourish puts it on the Publisher and Enterprise tiers. Free and Presenter accounts do not have it.
Here is how the four current tiers split, from Flourish's own pricing page.
| Plan | Publish to a Flourish URL | Image and SVG export | Download HTML to self-host |
|---|---|---|---|
| Free | Yes, public, with a Flourish credit | No | No |
| Presenter | Yes | Yes | No |
| Publisher | Yes, credit removed | Yes | Yes |
| Enterprise | Yes, credit removed | Yes | Yes |
Two things before you go shopping.
Neither Publisher nor Enterprise shows a number. Both say contact sales, so you budget by asking rather than reading. Flourish plan comparison
And several Flourish help articles still call the export tier Business, the old name for the same thing. If a support page and the pricing page disagree about which plan you need, that is why.
Free accounts are not crippled, to be fair about it. You get unlimited projects, unlimited public publishing, and privacy on anything you have not published. What you cannot do is take the files away with you.
If you have never put a folder of files on the web before, the mechanics of hosting an HTML file covers the groundwork this post assumes you already have.
Embedding And Exporting Are Not The Same Thing
An embed borrows the chart. An export gives you the files. People conflate the two and then wonder why their "self-hosted" chart went blank when a card expired.
Flourish gives you two ways to embed. The script embed is a small script tag plus a placeholder element, and it resizes itself to whatever width it lands in, which is why Flourish recommends it. A plain iframe does the same job inside a fixed frame. Both of them pull the actual visualisation from public.flourish.studio every time somebody loads your page.
Every account can embed, free ones included. So if all you want is the chart appearing inside a page you control, you can already do that today at no cost.
| How you use it | Where the chart files live | Survives the account lapsing | Served from your domain | Needs a paid plan |
|---|---|---|---|---|
| Script embed | Flourish | No | No | No |
| Plain iframe | Flourish | No | No | No |
| Downloaded HTML | Your host | Yes | Yes | Yes |
Read that middle column twice. It is the whole reason anybody bothers with the rest of this post.
Why Self-Host When Flourish's Hosting Is Good?

For most people, do not bother. Flourish's hosting is free, quick, handles the responsive resizing for you, and the chart lives at a stable URL you can send to anyone. Moving it is work, and work with no payoff is a hobby.
The reasons that genuinely hold up:
- One domain for everything. A report, its charts and its PDF all under
yourorg.orgreads as one publication rather than three services stitched together. - It outlives the account. Budgets get cut, staff leave, subscriptions lapse. A chart in a 2026 newsroom report that still renders in 2031 has to be made of files somebody owns.
- Policy. Plenty of government, health and finance sites are not allowed to load third-party scripts into a published page. That rules out an embed and leaves the export as the only route.
- Offline and intranet. An internal dashboard behind a login, a conference room with terrible wifi, an air-gapped machine. Flourish says a downloaded project can be opened straight from the file for offline presentation.
And one reason that does not hold up: getting rid of the Flourish credit. The paid plan removes attribution from a normally published chart anyway, so if the logo is your only complaint, you do not need to host anything.
What Is Inside The Download?
A ZIP file, and it is ready to go. Flourish describes the contents as the HTML, CSS and JavaScript needed to run the visualisation, a copy of your data, and a text file called how_to_embed_me.txt with the steps to get it live.
Read that text file. It is short, specific to your project, and more current than any blog post including this one.
Two behaviours worth knowing before you upload anything:
It opens from your desktop. Double-click index.html and the chart runs in your browser with no server involved, which is what makes it usable in a presentation on a bad connection.
But not everything comes with it. Flourish's own FAQ is straight about this: some templates pull fonts, inline images or background map tiles from the web at load time. Fully offline, those pieces do not appear. If your visualisation is a story map, test it disconnected before you promise anybody it works on a plane.
How To Upload It Without Breaking The Chart

Six steps, and step three is the one that ruins people's afternoons.
- Unzip it on your own machine first. Some hosts unpack an archive for you and some just serve it as a download. If yours does the unpacking, uploading a ZIP directly saves you a step, but check first.
- Open
index.htmllocally. If it is broken here, it will be broken online, and you have saved yourself a debugging session on a live URL. - Upload the folder, not the loose files. This is the failure.
index.htmlasks for its JavaScript and data by relative path, so a file that was sitting in a subfolder has to still be in that subfolder after the upload. Drag-and-drop uploaders that accept individual files will happily flatten the whole thing, and a flattened export is a blank rectangle with a stack of 404s behind it. MDN on relative and absolute URLs - Give it its own directory. Something like
/charts/emissions/. Charts multiply, and a project calleddata.jsin your site root will collide with the next one within a month. - Check it on a phone, on mobile data. Your laptop still has the local copy cached and will lie to you about whether the upload worked.
- Then embed it if you need to. A self-hosted copy does not get Flourish's resizing script, so you set the height yourself. Flourish has a help article devoted to exactly this, which tells you something about how often it comes up.
<iframe src="https://yoursite.com/charts/emissions/index.html"
width="100%" height="600" style="border:none;"
scrolling="no"
title="Emissions by country, 2015 to 2025"></iframe>
Pick the height by opening the chart on its own and seeing where it stops. Six hundred pixels is a fair guess for a bar or line chart, and far too short for a scrollytelling story.
What A Self-Hosted Copy Cannot Do
It is a snapshot. That is the honest headline, and it is the thing people discover in month two rather than day one.
The data is baked into the files at the moment you downloaded them. Update the spreadsheet in Flourish and your hosted copy carries on showing last quarter's numbers, perfectly, forever. Flourish's documentation goes further: projects built with its Live CSV feature cannot be downloaded for self-hosting at all, and republishing intervals do not apply to a downloaded copy.
So every data refresh becomes: edit in Flourish, download again, unzip, re-upload. If that is a monthly chart, fine. If it is a daily one, self-hosting is the wrong call and an embed is the right one.
Three smaller things you give up:
- The Flourish project page, with its share, preview and duplicate buttons.
- Anything Flourish improves in the template after your download date.
- Programmatic generation. Flourish's live rendering API for pushing charts into other systems is an Enterprise feature, not something a downloaded folder gives you.
And the usual static-hosting boundary applies to whatever you upload it to. A static host serves files and runs no code, so it cannot re-query your database or regenerate the chart on a schedule. what a static host does and does not do covers where that line sits. If your chart genuinely needs to read live data on every page load, OxyPages is the wrong tool and so is every other static host.
What To Do Next
If you are on the free plan, stop here and use the embed. It works, and it costs you nothing but a small credit in the corner.
If you are on Publisher or Enterprise and you actually need the files under your own domain, the whole job is four moves:
- Export and publish, then Download HTML.
- Unzip, open
index.htmllocally, confirm it renders. - Upload the entire folder into its own directory, structure untouched.
- Load the live URL on a phone, then iframe it into the page it belongs on.
Drop the unzipped export folder in and get a URL if you want the upload half done in about a minute without a dashboard to learn. Netlify Drop and Cloudflare Pages both do this well too, and if your organisation already has a web server, that server is the correct place for it.
One last piece of advice from watching this go wrong. Write the download date into the page next to the chart. In two years, when somebody asks whether those figures are current, that one line is the difference between a five-second answer and an afternoon of archaeology.
FAQ
Can I Download A Flourish Chart On The Free Plan?
No. HTML download for self-hosting is limited to the Publisher and Enterprise plans, and image or SVG export starts at Presenter. Free accounts can build unlimited projects and embed them anywhere, but the files stay with Flourish.
Why Is My Self-Hosted Chart Showing A Blank Box?
Almost always a flattened folder. The exported index.html looks for its JavaScript and data by relative path, so if the upload dropped everything into one directory, those requests 404 and nothing draws. Open your browser's network tab on the live URL, look for the red rows, and re-upload keeping the original structure.
Does A Downloaded Chart Update When I Change The Data?
No. Your Flourish Studio project and your hosted copy are separate from the moment you download. To publish new numbers you download and re-upload. If the data changes often, use an embed instead, which always shows whatever the project currently holds.
Can I Open The Export Without Internet Access?
Mostly. Flourish says a downloaded project can be opened directly in a browser for offline presentation, but templates that fetch fonts, inline images or map tiles from the web will show gaps when there is no connection. Test it disconnected before you rely on it in a room with no wifi.