Guide

How to share a ChatGPT Canvas with a client (non-technical recipients)

The cleanest workflow for sending a ChatGPT Canvas to a client is to copy the Canvas HTML, paste it into LiveSend or another HTML host that gives you a permanent URL, and send the client the link. The native ChatGPT share button is unsuitable for clients: it shares the whole conversation, exposes your prompt history, and brands the page with ChatGPT. Hosting the Canvas yourself gives the client a clean URL, no account requirement, and lets you know when they opened it.

Sharing with a teammate is not the same as sharing with a client

When you share a Canvas with a teammate inside the same ChatGPT workspace, the native share link is fine: they understand what ChatGPT looks like, your prompt history is harmless to them, and they may even want to fork the conversation. A client is a different situation entirely. They do not have a ChatGPT account, do not care about your prompt history, and a page that looks like a ChatGPT conversation reads as "this person sent me their scratchpad". For client work, the goal is a clean URL with no ChatGPT branding, no scrolling through the chat, and ideally a notification when they open it.

Why the native ChatGPT share link does not fit client work

  • It shares the whole conversation. The client sees your prompts and any dead-ends before they get to the Canvas.
  • It is branded ChatGPT. The page header, footer, and navigation all read "OpenAI". For a paid deliverable this looks unfinished.
  • There is no view tracking. You cannot tell whether the client opened it, when, or how long they stayed.
  • No password, no expiration. Whoever has the URL keeps access for as long as the link survives.

What the client actually wants

A short URL, a fast-loading page, and an experience that feels like you sent them something finished. Nothing ChatGPT-flavored, nothing that requires them to scroll past your prompts, nothing that asks them to sign in.

Option 1, copy the Canvas HTML into LiveSend

Three steps:

  1. In ChatGPT, open the Canvas and switch to source view (or click the code button) to reveal the raw HTML. Select all and copy.
  2. Open LiveSend, paste the HTML into the new-document upload, give it a title. The system returns a permanent URL.
  3. If the document is confidential, toggle on the password and the email gate. Then send the URL to the client.

Every view is logged. If you enabled the email gate, you also get the viewer's email. You can edit the HTML inline later without changing the URL. Trade-offs: 3MB (6MB for Pro) cap per file (covers nearly all Canvas output), small LiveSend watermark on the Free plan, no custom domain yet.

Option 2, deploy on Vercel or Netlify

If the client expects a custom domain (yourcompany.com) and you already have a Vercel or Netlify account, this is the right answer. Drop the .html into a repo, deploy, point a subdomain at the project. The setup is heavier (Git, project config, redeploy on edits) and view tracking is not built-in, so you would add analytics separately.

Option 3, screenshot or PDF export

If the Canvas is purely visual (a chart, a single-screen diagram) and the client does not need to interact with it, exporting to PDF or sending a screenshot is the friction-free path. It fails the moment the Canvas has interactive elements, multiple sections, or text the client needs to copy.

Checklist before you send to a client

  • Open the link in an incognito window. Make sure it loads cleanly with no auth prompt.
  • If the Canvas references external assets (fonts, images, scripts), make sure they all load over HTTPS without warnings.
  • If the document is confidential, add a password.
  • If there is a deadline (e.g. proposal valid until Friday), set an expiration date.
  • Turn on view notifications so you know the moment the client opens it.

Picking the right option

For most client deliveries: copy the Canvas HTML into LiveSend, send the URL. For deliverables that need a custom domain: deploy on Vercel. For purely visual Canvases: screenshot or PDF.

Frequently asked questions

  • Can my client open a ChatGPT Canvas link without a ChatGPT account?
    For a public ChatGPT share link, they can read the conversation without an account but cannot interact with the Canvas. To remove that friction entirely, copy the Canvas HTML out of ChatGPT and host it on a service that serves it as a standalone page (LiveSend, Tiiny.host, Vercel). Recipients then need only a browser.
  • How do I share only the Canvas, not the whole conversation?
    Open the Canvas in ChatGPT, switch to source view if needed, and copy the HTML or code. Paste it into a standalone HTML host. The shared link will then render only the Canvas output, without your prompts, ChatGPT replies, or any dead-end attempts visible.
  • Can I track whether my client opened the link?
    Yes, if you host the Canvas on a platform with view logging. LiveSend records each view with timestamp, optional viewer email (via an email gate you can toggle on for client-facing docs), country, and time spent. ChatGPT share links provide no analytics.
  • How do I add a password to a Canvas I'm sharing with a client?
    You cannot add a password to a native ChatGPT share link. Hosting the Canvas on LiveSend (Pro), Tiiny.host (paid), or Static.app (paid) lets you protect it with a server-side password. Avoid client-side JavaScript password schemes embedded in the HTML, they can be bypassed by viewing the page source.
  • What if my client needs to interact with the Canvas (forms, charts)?
    Any host that serves the HTML raw and allows JavaScript will preserve interactivity. LiveSend renders the document inside a sandboxed iframe that allows scripts but blocks access to the parent page, so charts, forms, and animations work. Same is true for Tiiny.host, Vercel, and Static.app.

Related guides

Want to try the LiveSend approach?

Paste your HTML, get a permanent link. Free for the first 3 documents.

Get started free