CHATGPT HOSTING
ChatGPT hosting: turn the page it wrote into a real link
ChatGPT usually answers with one self-contained HTML file. That is the easiest thing there is to publish: save it as index.html, drop it here, and it is live over HTTPS in seconds. No build, no ZIP, no account on anything else.
Free plan, free SSL, no credit card.
- 0
- build steps for a self-contained page
- 1
- file, which is all a chat usually gives you
- 1
- free site with HTTPS, no card
- 25
- publishes a day, because you will ask it to change something
What you are holding
What ChatGPT outputs
A block of code in the conversation, and in the common case that block is one complete HTML page with its CSS and JavaScript written inline. A browser can already render it, which means publishing it is a copy rather than a conversion.
The second most common shape is a React component: a function, some JSX, probably Tailwind classes. That normally needs a build, because browsers do not understand JSX. Here it does not. Save it as a .jsx or .tsx file and upload it on its own, and it is transformed in the visitor browser using React and a JSX runtime served from our own edge. Nothing is installed and nothing you upload runs on our servers.
The third shape is the one to watch for. If the answer spans several files, or the code imports from ./components/Header or from a package you have never installed, it is a project rather than a page, and it needs its build run before any static host can serve it. The framework deploy guides name the command and output folder for 23 frameworks, and the difference is worth checking before you upload rather than after.
The fork
Which of the two paths you are on
Read the top of the code block. Imports decide this, and they decide it in about three seconds.
One file, no build
The usual case for a chat answer. Everything the page needs is in the block on screen.
- Save the HTML as
index.htmland upload it. That file name is what makes it the page people land on. - A React component with no imports beyond React: save it as
.jsxand upload that instead. - Tailwind classes are fine on both paths; a Tailwind runtime is served from our own edge.
- Want to see it render first? The HTML tester takes pasted markup directly.
Several files, one build first
The answer described a project, or the code imports from other files you would have to create.
- Create the project locally, install what it imports, and run its build.
- Upload the folder the build produced, as a folder or zipped.
- Guides for 23 frameworks, each naming the command and the folder.
- Packages other than React are not fetched from a public CDN for your visitors, so this path is not optional when they appear.
Step by step
Getting the code out of ChatGPT
Nothing here needs an export feature. The reliable route is the one that has always worked: copy the block, save it as a file, upload the file.
-
Copy the code block
Use the copy control on the block rather than selecting the text by hand, which tends to collect the surrounding prose along with it.
-
Or download it from canvas
When the code is in a canvas rather than a chat message, use the Download button in the top-right corner. A code canvas detects the language and saves the file with that language's extension, so an HTML canvas comes out as a .html file with nothing else to do.
-
Save it as index.html
Any text editor does this. The name matters:
index.htmlis the file served at the root of the address, so a page named anything else will not be the one visitors see first. -
Check it opens locally
Double-click the file. If it looks right in your own browser with no server running, it is self-contained and it will look right published.
-
Upload it and pick a name
Drop the file here, choose the subdomain, and the page is live over HTTPS. Re-upload later and the address does not change.
Canvas behaviour from OpenAI's own help centre, read 8 September 2026: its canvas article states that the Download button is in the top-right corner of the canvas and that a code canvas detects the language and exports it with the appropriate file extension, and its article on writing and code blocks states that code is placed in a block you can read, copy, edit, preview or run. The help centre refuses automated requests, so those articles were read through their published text rather than fetched directly; a human re-checking them should open them in a browser. Menu labels can change.
Who it is for
The people who reach for this
-
People without a tech team
The chat wrote the page. This is the part where it stops being text in a window and becomes an address.
-
Marketing teams
A landing page drafted in a conversation, live at a link, without an engineering ticket.
-
Educators
An interactive explainer or a small tool written in a chat, handed to a class as a link rather than a file.
-
Developers
A throwaway page at a real URL, without creating a repository for something that exists to answer one question.
In detail
What you actually get
A single file is the whole upload
No archive, no folder structure, no build configuration. The thing the chat gave you is the thing you upload.
- A self-contained
.htmlpublishes exactly as written. - A single
.jsxor.tsxis transformed in the visitor browser at the published address. - React, the JSX runtime and a Tailwind runtime come from our own edge, not from a public CDN.
- Other packages are not fetched on your visitors' behalf; the live page names what is missing rather than going blank.
One address across every rewrite
You will go back and ask for a change. That is what a chat is for, and it should not cost you a new link each time.
- Up to 25 publishes a day on the free plan.
- The address belongs to the site, so a link you already sent shows the current version.
- From Pro, restoring the version that worked is one click.
- The swap is atomic, so a visitor never sees a half-published page.
It is a site, not a share link
A published page gets the controls a hosted site gets, which is more than a shared conversation ever offers.
- Password protection from Starter, checked at the edge before a file is served.
- Visitor analytics from Pro.
- Expiring links from Starter: six hours, a week, or a date you pick.
- Custom domains from Pro, $15 a month.
Troubleshooting
What breaks, and why
Chat-written pages fail in a small number of ways, and the first two below account for most of them.
-
The page is live but completely unstyled
Why The markup references
style.cssor./assets/app.js, files that existed in the conversation's imagination and nowhere else. You uploaded the HTML on its own, so those requests 404.Fix Either ask for a single self-contained file with the CSS and JavaScript inline, or create the referenced files and upload the whole folder so the relative paths resolve.
-
Nothing loads, and the file is called page.html or code.html
Why The file served at the root of an address is
index.html. A single file with another name is published, but nobody visiting the address will be shown it.Fix Rename the file to
index.htmland upload again. Same site, same address, one publish. -
Every route except the home page returns a 404
Why The app routes in the browser, so /about exists only once JavaScript has run. A static host asked for /about looks for a file at that path, does not find one, and answers 404 before your code loads.
Fix Turn on the Single-page app switch in the site settings. Unknown paths are then served the root index.html and the client router takes over. Free on every plan, applied without a redeploy, and off by default because a multi-page site wants real 404s.
-
The API keys the tool wrote into the code are now public
Why AI tools fill in the value they can see, and a key in front-end code is readable by anyone who opens the page. No host can fix that: a published page is public by definition.
Fix The deploy-time security check names the key it found. Rotate it, then move the call behind something that can hold a secret. Every plan, free included, and it never blocks the publish.
No card required
What the free plan includes
Publishing a page from a chat costs nothing, which is the right price for something you may replace in ten minutes.
- 1 live site on a real free plan, not a trial of a paid one, with HTTPS and no card to start.
- Up to 25 MB per upload and 25 MB of storage across the account.
- 5,000 visits and 5 GB of traffic a month.
- Up to 25 publishes a day, which is the number that matters when you are regenerating.
- The Single-page app switch, so a client-routed build works without paying for anything.
- The deploy-time security check, which warns about a stray .env file, a .git folder, a private key or an API key left in your JavaScript.
- A small Droply badge in the corner of the page. Removing it starts on Starter.
- Free sites are served noindex, so search engines do not list them. Search visibility starts on Starter.
Droply vs Static.app
How this compares with the other host built for AI output
Static.app has a ChatGPT page of its own, and its documentation states its own constraints clearly, which makes this table checkable rather than rhetorical.
| Droply | Static.app | |
|---|---|---|
| A single file from a chat | Dropped as it is, with nothing around it. | Must be zipped first, per its own Claude page. |
| A React component from a chat | Save as .jsx and upload; it runs at the published address. | Needs a self-contained HTML version first, per its own Claude page. |
| Expiring links | From Starter: six hours, a week, or a date you pick. | Not listed on any of its plans. |
| Password protection | From Starter, enforced at the edge. | Not listed on any of its plans. |
| Loose .html file accepted | Yes, dropped on its own with nothing around it. | No. Its Claude page states a loose .html file is not accepted and must be zipped. |
| Single .jsx or .tsx without a build | Yes. It is transformed in the visitor browser at the published address. | No. Its Claude page says React-based artifacts need a self-contained HTML version first. |
| Free plan | 1 site, 25 MB storage, no card, and a plan rather than a trial. | A 7-day trial with no credit card, then paid. 1 site and 50 MB during it. |
| Security check on every publish | Every plan, free included: leaked keys, a stray .env, a committed .git folder. | Not offered. |
Static.app figures checked 8 September 2026 on its own pricing page (free tier: 1 site, 50 MB, a 7-day trial with no credit card; Starter $5 a month or $60 a year for 2 sites and 500 MB with a custom domain; Medium $10; Large $15) and on its Claude hosting page, which states that a loose .html file is not accepted and must be zipped, that React-based artifacts need an extra step because you have to ask the model for a self-contained HTML version, and that Import from URL takes claude.ai and claude.site links. Product plans can change.
When Droply is the wrong choice
A chat will happily describe an application, and describing one is not the same as producing something a file host can serve.
- The answer includes a server, an API route or a database schema. Only the static half can be published here.
- The code imports packages you would have to install. They are not fetched from a public CDN for your visitors, so this needs a real build first.
- The generated app has a database, a login screen or server actions. Those need a runtime; only the static half of it can be published here.
- You want a build to run here, on upload or on every push. There is no build step and no Git integration: you build locally and bring the output.
- You are running WordPress or another PHP application. A static export of it can be hosted here, but the application itself cannot.