AI Artifacts & Generated Sites

ChatGPT Canvas

Definition

Canvas puts a working document beside the chat instead of inside it. Two kinds of thing go in there: prose, such as a draft or a report, and code, such as a script or a web page. You can type into it yourself, select a paragraph or a function and ask for that section to be reworked, and step back through earlier versions. For code, it can add comments, fix bugs or port between languages on request. What Canvas is not is a host — the document lives in your ChatGPT account, and the URL in your address bar is a chat URL, not a web page anyone can open. OpenAI revises Canvas regularly, so the feature list above is a starting point rather than a specification.

Why It Matters

People build genuinely useful things in Canvas and then stall, because the last step is a different kind of step. Editing and running a page in a chat panel proves it works; it does not give it an address. The distinction shows up the first time you send the link to somebody: they land on a login wall, or on your conversation, or on nothing. Copying the code out and hosting the file turns a private draft into something a client can open on a phone in ten seconds, and the file is then yours regardless of what happens to the thread it came from.

How It Works

Take the code out of the canvas with the copy control, paste it into a plain text editor and save it. If the canvas holds a full HTML document — a doctype, a head, a body — save it as index.html and upload it to a static host, and it is live. If it holds only fragments, such as a stylesheet, a script and some markup in separate canvases, you have to assemble them into one page yourself or ask for a single combined file. A prose canvas is a document rather than a page, so publish it as a PDF or ask for it converted to HTML first. Whatever you paste in, the same limit applies as for any generated page: server-side code, a database connection or a private key will not run on a static host, and the honest fix is to remove the feature or move it behind a service that does run code.

Real-World Example

A consultant drafts a client onboarding checklist in Canvas, then asks for it as a self-contained HTML page with a print stylesheet. She saves the result as index.html, uploads it to 99helpers and names it northwind-onboarding, then sends northwind-onboarding.99helpers.site to the client. It used to be an attachment she emailed again after every edit; now she re-uploads the file and the same link shows the new version.

Common Mistakes

  • Sending the ChatGPT conversation link as if it were a published page — it opens your account's chat, not your work, and usually not for the recipient at all
  • Publishing a prose canvas as .html without converting it — a Markdown document saved with an HTML extension renders as one unbroken block of text with the hashes and asterisks visible
  • Assuming code that ran in the canvas preview will run on a web host — a Python script that executed there needs a server, and a static host does not provide one
  • Copying by selecting the rendered text rather than using the copy control — indentation and quote characters get mangled, and the page breaks in ways that are hard to spot

Related Terms

Put a file online in seconds

Drop in a document, an image, a page or a whole static website and share the link — free, with no build step and no server to set up.

Host a file free →