Sending a Claude or ChatGPT artifact to one client — how the channels compare, where private-link hosting fits, and the six clicks that get you there.
You built something in Lovable, v0, Bolt, or Gemini and sent the share link — and the reply was 'it asks me to log in' or 'it's blank.' Here's why AI-tool share links fail the recipient, tool by tool, and the link pattern that just opens.
An AI tool builds the landing in fifteen minutes; deciding where it lives takes the next hour. Three hosting shapes and how to pick between them.
miinideck turns a single HTML file into an unguessable link with optional password and expiry. Default-private, never indexed.
You built something good with Claude or ChatGPT — a live HTML report, an interactive prototype, a dashboard mock. The chat shows it rendered. The client is waiting.
Now you have to actually send the thing. The hard part should be over. Sometimes it isn't.
There are five or six channels people use for this. Each does something well. Here's what fits where.
Send the chat link. Works if your client wants to read the conversation that produced the artifact. Most don't — they want the polished output, not the prompts. The chat link foregrounds your thinking process, which is great mid-iteration with a collaborator and a different feel when handing off something finished.
Paste the HTML into the email body. Fine for short snippets — the kind of HTML newsletters and signature blocks are made of. Email apps sandbox everything else (JavaScript, external fonts, complex CSS) because that's what keeps Gmail and Outlook trustworthy at scale. The artifact arrives; the interactive parts don't.
Attach the .html file. The file lands on the client's device exactly as you built it. Email providers add a security check on HTML attachments — sensible, a lot of phishing arrives this way — and how the client opens the file depends on their device. Sometimes a preview opens. Sometimes it lands in Downloads first. For one client expecting it, fine. For three or four people on different devices, you end up explaining the same thing three or four times.
Public hosting (Netlify, Vercel, GitHub Pages, Tiiny.host). Built for the moment you want reach — a launch page, a public demo, a portfolio. Whatever you put there is meant to be findable; that's the whole point. For an artifact meant for one specific client, the same property means it'll show up in search results in a few weeks. Sometimes that's a bonus, sometimes a surprise.
Cloud drives (Drive, Dropbox). Made for working documents — multi-file projects, version history, comments. A standalone .html file lives there fine, but most viewers see the drive's UI first and the artifact second; the file opens as a code preview until they manually pick "open in browser".
A self-contained HTML file. One client (or a short list). No public discovery. No chat exposure. No "open in Downloads" ritual. Just send a link, they click, they see the work.
That's the gap miinideck sits in. Drop the file, get a random 32-character link, send the link. No listing on the site, no search index, no chat history attached. If the URL leaks, you delete it.
Send one HTML file, see the link in under 60 seconds. No card, no account, the file self-destructs after 7 days — useful for testing the flow before you trust it with real client work.
.html file — all styling, all JavaScript, all imagery inlined.https://www.miinideck.com/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6 — 32 random characters, unlisted, not indexed.Six steps, no account, no public URL.
ChatGPT's canvas renders HTML/JS the same way Claude does. The flow is identical past the export step:
.html.If your output isn't already self-contained — it references <script src="..."> to a CDN, or <link href="..."> to fonts — ask the model that produced it to "rewrite this as a single self-contained HTML file with all CSS and JavaScript inlined". Both Claude and ChatGPT are good at that. One prompt usually does it.
If you freelance or run a studio, the file you send a client is the work product — it's what they remember about whether you delivered. The channel you pick is part of that.
A chat link says: come read along with how I built this. Great mid-iteration. Different feel when the work is done.
An attachment says: here's the file exactly as I made it. Best when the recipient is expecting it on a device you know.
A public URL says: this is meant to be found. What you want for a launch, not always for one client.
An unguessable private link says: I picked who sees this, and the list stays with me.
Same artifact, four different framings. Pick the one that matches the work.
| You have | Send via |
|---|---|
| A short HTML snippet (under 200 lines, no JS) | Paste into the email body |
A self-contained .html with interactivity, for one client | Private miinideck link |
| Public marketing material (a launch page, a public demo) | Netlify / Vercel / Tiiny.host |
| A long-running app with login, state, a backend | Proper hosting (Vercel, Render, Fly) |
| Drafts you don't want anywhere yet | Local file, screen-share session |
The private-link path covers the one most freelancers and consultants get stuck on — I have a finished HTML file, intended for one client, and it isn't public material.
Free keeps one always-on link that never expires; everything else runs a 7-day self-destruct. Solo makes every link permanent and removes the footer for $4.99/mo. Privacy and password protection are always free; paid tiers are about persistence and ownership.
miinideck does one thing: takes a single HTML file, gives back a private URL. It's not a Drive replacement, a Notion replacement, a hosting platform, or a CDN — those tools cover other shapes of need (versioning, multi-file structure, custom domains, public reach), and they cover them well.
For sharing a Claude or ChatGPT artifact with one client, narrow is the right fit.