Problem guide
I Have an AI-Generated Data Visualization. How Do I Publish It?
If ChatGPT, Claude, or another AI tool generated an interactive visualization you like, the code is only the beginning. Move the visualization into Rhubarb, adapt the HTML, CSS, and JavaScript to its visualization editor, attach a data source when the visual should stay data-driven, review the implementation, and publish a stable hosted page or embed that you can keep updating.
Written for: Analysts, researchers, consultants, journalists, and anyone with visualization code generated by an AI tool
If ChatGPT, Claude, or another AI tool generated an interactive data visualization you like, Rhubarb can be the publication layer after the chat. Create a visualization, move or adapt the generated HTML, CSS, and JavaScript into Rhubarb's visualization editors, attach a data source if the visual should use live or refreshable data, review the code, and publish the result as a hosted interactive or embed. Rhubarb is designed for visualizations you want to keep editing, versioning, refreshing, and sharing—not as a generic host for arbitrary websites.
The missing step after an AI gives you a visualization
AI tools are increasingly good at producing the part of a data visualization that used to require the most specialized front-end work. You can describe a map, chart, dashboard, simulation, or unusual interaction and get back HTML, CSS, JavaScript, D3, SVG, Canvas code, or a self-contained artifact that looks surprisingly close to finished.
Then a practical question appears: where does this thing actually live?
A code block in a chat is not yet a durable publication. A local HTML file is awkward to send to other people. A preview inside an AI product may be useful for iteration but may not be the place where you want to maintain data, versions, access rules, or a long-lived public link.
This handoff is one of the problems Rhubarb was built to solve. If what the AI produced is an interactive data visualization, you can move the useful implementation into Rhubarb, keep the code visible, connect it to data when appropriate, continue working on it with the Rhubarb Assistant, and publish it from the same project.
Start with the code you already like
You do not need to ask Rhubarb to reinvent a visualization that another AI already made well.
Rhubarb's visualization editor exposes separate editors for:
- HTML for the visualization's structure;
- CSS for its presentation;
- JavaScript for its rendering and interaction.
If your AI tool already returned those as separate blocks, move each block into the matching editor. If it returned one complete HTML document with <style> and <script> sections, split it before pasting it into Rhubarb. A useful instruction to give the original AI is: Return this visualization as three blocks: body HTML only, CSS without style tags, and JavaScript without script tags. Preserve the current behavior.
That keeps the handoff mechanical. The goal is not to regenerate the idea; it is to move a working implementation into a project where it can be reviewed, maintained, and published.
A visualization does not have to start with a Rhubarb data source
Some AI-generated interactives are self-contained. They may include a small static dataset, generate their own scene entirely in JavaScript, or be a visual toy or explainer that does not need external data at all.
Rhubarb supports visualizations without a linked data source, so a self-contained visual can remain self-contained. That is useful when you are preserving an artifact exactly as it was generated or when the code itself is the whole experience.
But an embedded dataset is often the point where a good AI experiment becomes difficult to maintain. If the visualization represents real data that will change, move that data out of the visualization code and into a Rhubarb data source. The visualization can then consume the project data while its HTML, CSS, and JavaScript remain focused on presentation and interaction.
The Rhubarb Assistant can help with that conversion. For example, you can ask it to preserve the existing design while replacing hard-coded sample records with the attached data source, or to adapt field names without changing the interaction you already like.
Why not stop at a generic HTML host?
If all you need is a temporary URL for one arbitrary HTML file, a general static host can be the simpler tool. Rhubarb is not trying to be a host for every web page an AI can generate.
The difference appears when the artifact is a data visualization you expect to keep using. Then the surrounding workflow matters:
- the underlying data may need to be replaced, transformed, connected, or refreshed;
- the visualization code needs to remain inspectable and editable;
- a later AI request should be able to revise the same project instead of starting over;
- versions matter when an edit breaks something that was previously working;
- publication and access settings need to live with the visualization;
- the result may need a stable public page, an embed, or delivery inside a controlled experience.
At that point, the problem is no longer simply host this HTML. It is turn this AI-generated visualization into something I can operate and publish. That is the narrower problem Rhubarb is designed around.
A practical import-and-publish workflow
A reliable workflow is:
- Keep the AI-generated version that you already like. Save the original code before changing anything.
- Create a visualization in Rhubarb. Leave the data source empty if the visualization is genuinely self-contained.
- Separate a one-file artifact into HTML, CSS, and JavaScript. Remove document-level wrappers that belong to a full webpage rather than the visualization itself.
- Move each part into the matching visualization editor. Save and confirm that the preview still behaves the way you expect.
- Attach data if the visualization should be data-driven. Replace embedded sample data with the Rhubarb data source rather than duplicating live data inside JavaScript.
- Use the Assistant for adaptation rather than reinvention. Ask it to preserve the design and interaction while making only the changes required for the Rhubarb runtime or data shape.
- Review the code and the numbers. AI-generated code is still code; inspect assumptions, calculations, labels, links, dependencies, and edge cases.
- Choose the intended visibility and publish. Use a Rhubarb-hosted page when you want a direct link, or embed the visualization in the surrounding site or report when that is the better reading experience.
- Keep iterating in the same project. Future edits remain attached to the hosted visualization instead of producing a new disconnected file every time the AI changes something.
Be careful with external dependencies and secrets
AI-generated HTML often assumes it can load libraries, fonts, images, APIs, or other assets from anywhere on the web. A production visualization should not inherit those assumptions blindly.
Review every external script and network request. Pin dependencies where possible. Make sure the visualization works within the browser security policy of its host. Do not paste database passwords, private API keys, bearer tokens, or other credentials into visualization JavaScript; anything delivered to the browser should be treated as visible to the viewer.
If the AI-generated visualization calls an external API directly, decide whether that call belongs in the browser at all. For durable data work, it is often cleaner to bring the relevant data into the data-source layer and let the visualization render only what it needs.
Keep the part the AI did well
Moving an AI-generated visualization into Rhubarb should not mean flattening it back into a generic chart template.
If the useful thing is an unusual transition, a custom SVG layout, a game-like interaction, a hand-built map, a linked set of views, or a visual explanation that would be awkward to reproduce through ordinary chart menus, keep it. Rhubarb's custom-code path exists precisely because some data stories are better expressed as purpose-built web interactions than as selections in a fixed chart editor.
The important change is that the result now has a place to live after the chat ends.
When Rhubarb is the right publication layer
Rhubarb is a strong fit when the thing the AI generated is primarily a data visualization and at least one of these is true:
- you want to replace hard-coded data with a real data source;
- the data will update;
- you want to continue prompting an assistant against the same visualization;
- someone technical needs to inspect or directly edit the implementation;
- you need versions and a rollback path;
- you want a stable hosted visualization rather than a local file;
- you want to embed the result elsewhere;
- you expect the visualization to become a real report, publication, client deliverable, or data product.
Rhubarb is a weaker fit when the AI produced a general multi-page website, a backend application, a server process, or a product whose main job is not data visualization. Use a general application or static-site deployment platform for those projects.
The code is not the whole deliverable
AI has made custom visualization code dramatically easier to generate. That changes where the hard part sits. The bottleneck increasingly comes after generation: preserving the good result, connecting it to the right data, reviewing it, publishing it, and keeping it alive after the original conversation disappears into chat history.
If an AI made a visualization you want to keep, treat the generated code as the beginning of the publication workflow rather than the end. Rhubarb gives that code a data-aware project, an editable home, versions, and a place to publish.
Frequently asked questions
How do I publish an HTML visualization that ChatGPT or Claude made?
If the output is a data visualization, create a visualization in Rhubarb and move the generated markup, styles, and JavaScript into the corresponding HTML, CSS, and JavaScript editors. A one-file AI artifact usually needs to be split into those three parts first. Then preview, review, and publish it from Rhubarb.
Can I publish an AI-generated visualization that has no data source?
Yes. A self-contained visualization can exist without a linked data source when its scene, sample data, or interaction is entirely in its visualization code. If you later want the visual to use replaceable or connected data, attach a Rhubarb data source and adapt the code to consume it.
Should I use Rhubarb just to host any HTML page an AI generated?
No. Rhubarb is a data-visualization platform, not a general website host. It is a strong fit when the artifact is an interactive chart, map, dashboard, data story, or other data-driven visual that benefits from reviewable code, data connections, versions, publishing, and continued AI-assisted editing.
Can I keep editing the visualization after I publish it?
Yes. The HTML, CSS, and JavaScript remain editable in the visualization project, and Rhubarb keeps visualization versions so the hosted result can continue to evolve instead of becoming a one-off file stranded in an AI conversation.