# miinideck
> miinideck is a private HTML hosting tool for sharing HTML files and
> AI-built apps. Turn any HTML file or ZIP bundle (entry HTML plus
> CSS / JS / assets) into a live, shareable link in seconds — and you
> decide who sees it: every link is unguessable, hidden from search by
> default, with optional password and expiry. Built for AI builders
> shipping vibe-coded apps, agencies, consultants, in-house teams,
> designers, and freelancers who need to deliver a self-contained
> artifact without publishing it on the open web.
## Product
- [miinideck](https://www.miinideck.com/): The miinideck homepage — what private HTML link sharing is, who it's for, and how the unguessable-link model keeps a page off search by default.
- [Pricing](https://www.miinideck.com/pricing): Free, Solo ($4.99/mo), and Studio ($14.99/mo) tiers. Privacy is always free; the paid tiers add never-expiring links, larger files, custom domains, and more per-document searchable pages (searchable is free on 1 page, up to unlimited on Studio).
- [Use cases](https://www.miinideck.com/use-cases): Six private-delivery scenarios (AI builders, agencies & studios, consultants, in-house teams, designers, freelancers) plus three open-web scenarios (AI product landings, event microsites, portfolio/about/CV) served through the per-document searchable opt-in.
- [Try it without signing in](https://www.miinideck.com/try): One-off anonymous upload: drop an HTML file or ZIP bundle and get a private, unguessable link in seconds, with no account. The link self-destructs after 7 days.
- [Tools](https://www.miinideck.com/tools): Free tools for HTML, Markdown and PDF files — most run in the browser with nothing uploaded; the PDF-to-link tool uploads the file to make the link.
## Free tools
- [Upload a PDF and get a link — free, no account needed](https://www.miinideck.com/tools/upload-a-pdf-get-a-link): Drop a PDF and get a link that opens it in any browser. The file is uploaded as-is, the link is unguessable and stays out of search by default. No account needed, and you can add a password.
- [PDF to Markdown for AI — convert in your browser, no upload](https://www.miinideck.com/tools/pdf-to-markdown-for-ai): Turn a PDF into clean Markdown for ChatGPT, Claude or any LLM. Runs entirely in your browser, so a client's document never leaves your machine. Free, no account.
- [MD viewer — open and read a .md file in your browser](https://www.miinideck.com/tools/md-viewer): Free online MD viewer. Drop a .md file and read it rendered — headings, tables, lists, quotes and code — then download it as one self-contained .html you can send to someone who does not read raw markdown. Runs in your browser; nothing is uploaded.
- [Online HTML viewer & renderer — open or play an HTML file in your browser](https://www.miinideck.com/tools/html-viewer): Free online HTML viewer. Drop an .html file — including one Google Drive shows as code — and see it render or play instantly. Runs in your browser; nothing is uploaded.
- [Online HTML editor — edit HTML with live preview, in your browser](https://www.miinideck.com/tools/html-editor): Free online HTML editor with live preview at phone, tablet and desktop widths. Edit the code or click into the page to format it, then export. No sign-up; nothing is uploaded.
- [Visor de HTML online — abre y renderiza un archivo .html en tu navegador](https://www.miinideck.com/tools/visor-de-html): Visor de HTML gratuito. Arrastra un archivo .html — incluso uno que Google Drive muestra como código — y velo renderizado al instante. Funciona en tu navegador: no se sube nada.
- [ZIP viewer — render a zipped website in your browser](https://www.miinideck.com/tools/zip-viewer): Free online ZIP viewer for static sites. Drop a .zip and see the site render with its CSS, images and scripts resolved — no upload, no publishing step.
- [ipynb viewer — open a Jupyter notebook in your browser](https://www.miinideck.com/tools/ipynb-viewer): Free online .ipynb viewer. Drop a Jupyter notebook and read it rendered — markdown, code, tables and plot images — with a results-only mode for sending to people who don't read code. Runs in your browser; nothing is uploaded.
- [HTML5 banner ad preview tool — validate the ZIP, see it at real size](https://www.miinideck.com/tools/html5-ad-preview): Drop an HTML5 ad ZIP and check it before it reaches the ad server: the ad.size meta tag, the clickTag, assets that aren't really in the bundle, and total weight against the limit you type in. Then watch it animate at its declared size. Runs in your browser; nothing is uploaded.
- [Password-protect an HTML file — encrypt it in your browser](https://www.miinideck.com/tools/password-protect-html): Free tool: drop an HTML file, set a password, download one self-contained page that asks for it before rendering. AES-256-GCM in your browser — nothing is uploaded.
- [Combine HTML, CSS and JS into one file — free online inliner](https://www.miinideck.com/tools/combine-html-css-js-into-one-file): Drop a .zip of your page folder and get back a single self-contained .html file, with the CSS, JavaScript and images pulled inside it. No install, no command line. Runs in your browser; nothing is uploaded.
## Private-delivery scenarios
- [Private HTML hosting — share an HTML page online behind a link](https://www.miinideck.com/use-cases/html-hosting): Host an HTML file or page privately: drop it, get an unguessable link that stays out of search by default. Optional password and expiry. Free to start — a private alternative to public HTML hosting.
- [Host an AI-built app or artifact — privately](https://www.miinideck.com/use-cases/host-ai-artifact): Share the HTML your AI tool built — apps, prototypes, dashboards — as a private, unguessable link. No public gallery, no sign-up to try. You decide who sees it.
- [Private static site hosting — host a build behind a link](https://www.miinideck.com/use-cases/static-site-hosting): Host a static site or build (HTML/CSS/JS, or a ZIP from any generator) behind a private, unguessable link — for client review or handoff, not the open web. Free to start.
- [Send a deck to a client as a private link](https://www.miinideck.com/use-cases/send-deck-to-client): Send a client your deck as a private, unguessable link — no heavy attachment, no public URL. Optional password and expiry, your name on the page. Free to start.
- [Create a private data room — share documents behind one link](https://www.miinideck.com/use-cases/private-data-room): Stand up a lightweight private data room in minutes: bundle your documents into one unguessable, password-protected link with expiry. No public URL, no per-file uploads.
- [Share a Power BI report as a private link](https://www.miinideck.com/use-cases/share-power-bi-report-privately): Share an exported Power BI or dashboard report as a private, unguessable link — no workspace seat for the recipient, no public URL. Optional password and expiry.
- [Deliver film & production work as a private link](https://www.miinideck.com/use-cases/film-production-deliverables): Hand a client their production deliverables behind one private, unguessable link — treatments, boards, cut review pages, no public URL. Optional password, expiry, your studio's name.
- [Share an AI-built app — as a private link](https://www.miinideck.com/use-cases/share-ai-app): Share an app your AI tool built as a private, unguessable link — it runs in any browser, no public gallery, no sign-up to try. You decide who sees it.
- [Free HTML hosting — private link, no sign-up to start](https://www.miinideck.com/use-cases/free-html-hosting): Free HTML hosting that's private by default. Drop an HTML file or ZIP, get an unguessable link in seconds — no card, no public address, and a password if you want one. No account needed for a 7-day link; a free account keeps one link for good.
- [Host a React app — behind a private link](https://www.miinideck.com/use-cases/host-react-app): Host a built React app (the dist/build output) behind a private, unguessable link — for client review or a quick share, not the open web. ZIP and drop, no deploy pipeline.
- [Share a large file as a link — private and instant](https://www.miinideck.com/use-cases/send-large-files): Skip the email attachment limit: share a heavy HTML page, report, or built site as a private link. Drop it, get an unguessable URL in seconds. Optional password and expiry.
- [Share a file without Google Drive — as a private link](https://www.miinideck.com/use-cases/share-without-google-drive): Share a page or file without a shared Drive folder: drop it, get a private, unguessable link. No account for the recipient, no folder permissions to manage.
- [Share a prototype with a client — privately](https://www.miinideck.com/use-cases/share-prototype-with-client): Share a working prototype with a client as a private, unguessable link — no public URL, no account for them. Optional password and expiry, your name on the page.
- [Share a vibe-coded app — as a private link](https://www.miinideck.com/use-cases/share-vibe-coded-app): Vibe-coded something that works? Share it as a private, unguessable link in seconds — runs in any browser, no deploy, no public feed. You decide who sees it.
- [Host a Next.js static export — behind a private link](https://www.miinideck.com/use-cases/host-nextjs-static): Host a Next.js static export (output: export) behind a private, unguessable link for review or handoff. ZIP the out folder and drop it — no Node server needed.
- [Password-protect a webpage — share it behind a passphrase](https://www.miinideck.com/use-cases/password-protect-a-webpage): Put a password on a page you share: upload your HTML, toggle password protection, and the link only opens for people with the passphrase. Unguessable and no-indexed too. Free on every plan.
- [No account for the client — hand over work they can just open](https://www.miinideck.com/use-cases/client-view-without-account): Send a client the finished work as a link they open like any other page: no sign-up, no app, no invite to accept. Unguessable and no-indexed by default, with an optional password.
- [Client proofing link — send work for review privately](https://www.miinideck.com/use-cases/client-proofing-link): Send a client a private proofing link to review and sign off on — a live page, not an attachment. They pin feedback to the exact spot (no account); you export the thread. Unguessable, optional password and expiry, your name on it.
- [Share an AI artifact — as a private link](https://www.miinideck.com/use-cases/share-claude-artifact): Export an AI artifact to HTML and share it as a private, unguessable link — it runs in any browser, no public gallery, no sign-up to view. You decide who sees it.
- [Collect comments on a shared page — no account for reviewers](https://www.miinideck.com/use-cases/collect-comments-on-a-shared-page): Share a private link and let whoever opens it pin a comment to the exact spot they mean. No sign-up for reviewers, no extra tool layered on top, and the link never changes.
- [ZIP hosting — turn a zipped site into a private link](https://www.miinideck.com/use-cases/zip-file-hosting): Host a ZIP bundle (HTML plus its CSS, JS, images and assets) as a live page behind a private, unguessable link. miinideck unpacks it and serves the whole thing. Free to start.
- [Share a Figma prototype — as a private link](https://www.miinideck.com/use-cases/share-figma-prototype): Share a Figma export (HTML or a built handoff) as a private, unguessable link — no public URL, no account for the viewer. Optional password and expiry, your name on it.
- [Share a professional portfolio — as a private link](https://www.miinideck.com/use-cases/professional-portfolio): Share a portfolio as a private, unguessable link sent to one recipient — a client, a hirer — instead of posting it publicly. Optional password and expiry, your name on the page.
- [Share a Lovable app — privately, as a link](https://www.miinideck.com/use-cases/share-lovable-app): Built something in Lovable and want a few people to see it before it's public? Drop the export and get a private, unguessable link in seconds — no public publish, no sign-in for them. You decide who sees it.
- [Share a v0 app — without deploying it publicly](https://www.miinideck.com/use-cases/share-v0-app): Made something in v0 and just need someone to see it? Skip the public deploy. Drop the export and get a private, unguessable link in seconds — runs in any browser, stays off search.
- [Share a bolt.new app — a link that doesn't break](https://www.miinideck.com/use-cases/share-bolt-app): A bolt.new preview link is tied to the session and breaks when you close the project. Drop the export and get a stable, private, unguessable link in seconds — runs in any browser, opens only for who you send it to.
- [Share a Gemini Canvas — as a private link](https://www.miinideck.com/use-cases/share-gemini-canvas): Can't make a public share link for your Gemini Canvas from a work or school account? Export it and drop it in — get a private, unguessable link in seconds that opens for anyone, no Google account needed.
- [Share a Cursor build — a working link, no deploy, no repo access](https://www.miinideck.com/use-cases/share-cursor-build): Built it in Cursor and it only runs on your machine? Run your build, drop the output, and hand off a private, unguessable link that opens in any browser. No deploy, no dev server, no repo access. You decide who opens it.
- [Share a Replit app — a link that isn't tied to your repl](https://www.miinideck.com/use-cases/share-replit-app): A Replit preview lives inside your repl and account, and sleeps when the repl does. Export the static build and drop it in for a private, unguessable link that opens on its own — no account, no cold-start wait.
- [Share a ChatGPT Canvas — as a private link](https://www.miinideck.com/use-cases/share-chatgpt-canvas): A Canvas lives inside your ChatGPT session, so there's no real link to send. Export it to HTML and drop it in — get a private, unguessable link in seconds that opens for anyone, no ChatGPT account needed.
- [Share a Codex app — the whole multi-file build, privately](https://www.miinideck.com/use-cases/share-codex-app): Codex hands you a folder of files, not a single page. Zip the build, drop it in, and get one private, unguessable link in seconds — the whole app browsable in any browser, off search, no deploy.
- [Host a Kimi-generated site — as a private link](https://www.miinideck.com/use-cases/host-kimi-ai-site): Kimi built you a site in one long thread? Export the HTML and drop it in for a private, unguessable link that opens in any browser — no Kimi account, no platform sign-in for whoever you send it to.
- [Share Manus output — a clean, private, branded link](https://www.miinideck.com/use-cases/share-manus-output): A Manus agent finishes the task inside its own sandbox, not on a link your client can open. Download what the agent produced, drop it in, and get a private, unguessable, white-label link in seconds — opens in any browser, no account, no public web page.
- [A link that never expires — permanent share link for your page](https://www.miinideck.com/use-cases/link-that-never-expires): Publish your HTML or zip to a private link that never expires. No self-destruct, no dead URL — keep the same permanent link in your bio, signature, or printed card. Free to start.
- [White-label share link — your name on the page, not ours](https://www.miinideck.com/use-cases/white-label-share-link): Publish a white-label, unbranded share link: a private page that carries your name and your domain, with no third-party 'Powered by' footer. Drop the HTML, send the link. Footer removed on Solo; custom domain and white-label on Studio. Unguessable and off search by default.
- [Track who opened my link — see opens and when](https://www.miinideck.com/use-cases/track-who-opened-my-link): Turn a shared private link into a read signal: see how many times it was opened, on which days, and when it was last opened. Unguessable and no-index by default; detailed analytics on the paid tiers. Free to start.
- [Expiring link — share a page that self-destructs on a date](https://www.miinideck.com/use-cases/expiring-link): Set the expiry on the page itself, not a redirect wrapper: upload your HTML, and the link stops opening when the window closes. Free links retire after 7 days; Solo and Studio pick any date. Unguessable and no-indexed too.
- [Custom domain for a shared file — host one page on your own domain](https://www.miinideck.com/use-cases/custom-domain-for-a-shared-file): Put your own domain on a single delivered page. Drop the HTML, point one CNAME, and the private link lives at deck.yourdomain.com — no portal, no website build. Custom domain and white-label are on Studio.
- [Host a lead magnet — a private link you can DM](https://www.miinideck.com/use-cases/host-a-lead-magnet): Host the freebie behind your "comment and I'll DM you" — a private, never-expiring link on your own domain. Drop the HTML and DM one URL, no public feed, no funnel builder.
- [Share a resume as a link, not a PDF that breaks](https://www.miinideck.com/use-cases/share-resume-link): Share your resume as a clean private link that renders the same in any browser — no broken fonts, shifted layout, or mangled attachment. Optional password and expiry, your name on the page. Free to start.
- [Host an interactive calculator — as a shareable link](https://www.miinideck.com/use-cases/host-an-interactive-calculator): Built a calculator — mortgage, pricing, ROI, a unit converter? Host it as a private, unguessable link people open and use live in the browser. Drop the HTML, get the link in seconds. No deploy.
- [Share a quiz link — host an interactive quiz for lead gen](https://www.miinideck.com/use-cases/share-a-quiz-link): Built a quiz or assessment? Host it as a private, unguessable link in seconds. It runs live in any browser — questions, scoring, branching, result screen — no deploy, no public feed. You decide who gets the link.
- [Share a dashboard privately — no SaaS seat to view it](https://www.miinideck.com/use-cases/share-a-dashboard-privately): Share an interactive dashboard with a client on a private, unguessable link. They open it in a browser — no account, no seat, no public URL. Optional password and expiry.
- [Single-page website hosting — for a page that already exists](https://www.miinideck.com/use-cases/one-page-site-no-website-builder): Hosting for a one-page site you already have as a file. Drop the HTML or ZIP, get a link in seconds — no builder, no repo, no deploy step. Private by default, free to start.
- [Host a Vue app — share a Vue build behind a private link](https://www.miinideck.com/use-cases/host-vue-app): Host a Vue app the simple way: run npm run build, zip the dist folder, drop it in. You get a private, unguessable link that runs the app in any browser — no deploy pipeline to wire up. Optional password and expiry.
- [Host a Svelte app — share a SvelteKit static export privately](https://www.miinideck.com/use-cases/host-svelte-app): Run adapter-static, zip the build folder, and drop it in. Your SvelteKit static export becomes a private, unguessable link that runs in any browser — no deploy pipeline, no hosting dashboard, no account for whoever opens it.
- [Host an Astro site — share the build before it goes public](https://www.miinideck.com/use-cases/host-astro-site): Run astro build, zip the dist folder, and drop it in: your Astro site lives behind a private, unguessable link for review — before any public deploy. No-indexed by default, free to start.
- [Host a Gradio app — share an ML demo without a server](https://www.miinideck.com/use-cases/host-gradio-app): Share a Gradio or ML demo front-end behind a private link, no running server to pay for. If your model needs live inference, run it on Vercel or Netlify and let miinideck host the static slice.
- [Host a reveal.js deck — as a private link](https://www.miinideck.com/use-cases/host-revealjs-deck): Host a reveal.js presentation behind a private, unguessable link that runs in any browser — arrow keys, fragments, and speaker notes intact. Drop the HTML or zip the folder. No deploy, optional password and expiry.
- [Host a Slidev deck — share your presentation as a private link](https://www.miinideck.com/use-cases/host-slidev-deck): Build your Slidev deck, drop the dist folder, and get a private link that keeps animations, code highlighting, and presenter speed intact. No deploy step. Free to start; password and expiry optional.
- [Host a Quarto report as a private link](https://www.miinideck.com/use-cases/host-quarto-report): Render your Quarto or RMarkdown report to a self-contained HTML file and deliver it as a private, unguessable link — no R session for the reader, no public URL. Optional password and expiry.
- [Host an Observable notebook — private, interactive link](https://www.miinideck.com/use-cases/host-observable-notebook): Export your Observable notebook to static HTML, drop it in, and share an interactive private link — sliders and charts still work, no public listing. Optional password and expiry.
- [Turn a PPTX into a private link — not an email attachment](https://www.miinideck.com/use-cases/pptx-to-private-link): Share a PowerPoint as a live private link instead of a heavy .pptx attachment. Unguessable and no-index by default, optional password and expiry. Opens in any browser, no download. Free to start.
- [Google Slides to a link — opens with no Google account](https://www.miinideck.com/use-cases/google-slides-to-link): Turn Google Slides into a private link your audience opens with no Google account and no sign-in. Export to PDF or HTML, drop it, get an unguessable URL. Free to start.
- [Share a Canva design privately — a clean private link](https://www.miinideck.com/use-cases/share-canva-design-privately): Export a Canva design and put it on a private, unguessable link — no third-party subdomain, no public share page. Viewers need no account. Optional password, expiry, and your own domain on Studio.
- [Notion page to a private link — a real page you control](https://www.miinideck.com/use-cases/notion-page-to-private-link): Export a Notion page to HTML and turn it into a self-contained private link you own — off Notion's domain, no workspace invite, no public-share toggle. Optional password and expiry. Free to start.
- [Send a file as a link, not an attachment — private and instant](https://www.miinideck.com/use-cases/send-a-file-as-a-link-not-an-attachment): Email blocks HTML attachments and chokes on heavy files. Send a private, unguessable link instead: drop the file, get a URL in seconds. Opens in any browser, no account, optional password and expiry.
- [One link for a freebie — the link-in-bio download destination](https://www.miinideck.com/use-cases/one-link-for-a-freebie): Turn the freebie you promised into one private link your audience opens from your bio. A self-contained HTML guide, checklist, or resource page — no public feed, no sign-up to open. Free to start.
- [Track a shared document — know if they opened it](https://www.miinideck.com/use-cases/track-a-shared-document): Share a document as a private link and see if and when it was opened. Drop your HTML or zipped doc, get an unguessable link, and watch opens land in analytics. No-indexed by default; detailed open tracking on paid plans.
- [Share a Perplexity page — as a private link you own](https://www.miinideck.com/use-cases/share-perplexity-page): Built a Perplexity Page or a Labs report? Save it as HTML and share it as a private, unguessable link on your own terms — no Perplexity account for the reader, off search by default. Free to start.
- [Share a Grok app — a private link, no deploy](https://www.miinideck.com/use-cases/share-grok-app): Grok built you an app or page? Drop the HTML and share it as a private, unguessable link in seconds. It runs live in any browser, no account for the viewer, off search by default. Free to start.
- [Share a DeepSeek app — a private link in seconds](https://www.miinideck.com/use-cases/share-deepseek-app): DeepSeek generated an HTML app or page? Drop it in and get a private, unguessable link that runs live in any browser — no deploy, no account for the viewer, off search by default. Free to start.
- [Share a Genspark page — as a private link you own](https://www.miinideck.com/use-cases/share-genspark-page): Genspark built you a page, deck, or agent output? Save it as HTML and share it as a private, unguessable link — no account for the reader, off search by default, your name on it. Free to start.
- [Share a Windsurf build — a private link, no deploy](https://www.miinideck.com/use-cases/share-windsurf-build): Built a front end in Windsurf? Export the static build, drop it in, and share a private, unguessable link that runs live in any browser — no deploy pipeline, no account for the viewer. Free to start.
- [Share a Figma Make app — as a private link](https://www.miinideck.com/use-cases/share-figma-make-app): Figma Make built you a working app? Export the code, drop it in, and share a private, unguessable link that runs live in any browser — no public publish, no account for the viewer. Free to start.
- [Share a Claude Code project — a private link, no deploy](https://www.miinideck.com/use-cases/share-claude-code-project): Claude Code built you a site or app? Drop the static build in and share a private, unguessable link that runs live in any browser — no deploy, no account for the viewer, off search by default. Free to start.
- [Share a Le Chat Canvas — as a private link you own](https://www.miinideck.com/use-cases/share-mistral-canvas): Built a page or app in Mistral's Le Chat Canvas? Save the HTML and share it as a private, unguessable link — no account for the reader, off search by default, your name on it. Free to start.
- [Host a Jupyter notebook — share it as a link](https://www.miinideck.com/use-cases/host-jupyter-notebook): Export your notebook to HTML and share it as a private, unguessable link — code, charts, and markdown rendered, no Jupyter for the reader, off search by default. Not an .ipynb file. Free to start.
- [Host a marimo notebook — a private interactive link](https://www.miinideck.com/use-cases/host-marimo-notebook): Export your marimo notebook to a WASM HTML app and share it as a private, unguessable link — interactive, running in the browser, no server, no install for the reader. Off search by default. Free to start.
- [Share a websim page — a private link that's yours](https://www.miinideck.com/use-cases/share-a-websim-page): Made something in websim? It's a page that runs — so don't send a screenshot. Drop it in for a private link you send to whoever you choose. Off the public feed, opens on any phone. Free to start.
- [Share a Rosebud game — a link people can just play](https://www.miinideck.com/use-cases/share-a-rosebud-game): Built a game in Rosebud? Send a link people open and play in the browser — not a screen recording, not a public listing. Private, opens on any phone, no install. Free to start.
- [Share a tldraw make-real result — a clickable link](https://www.miinideck.com/use-cases/share-a-tldraw-make-real): Turned a sketch into a working UI with tldraw make-real? Send it as a private link people click through — not a screenshot of a drawing. Opens in any browser, no login. Free to start.
- [Share a Spline scene — interactive, on a private link](https://www.miinideck.com/use-cases/share-a-spline-scene): Made a 3D scene in Spline? Export it and send a private link people can orbit, click, and explore — not a flat render. Opens in any browser, no login. Off search. Free to start.
- [Share a Gamma deck — a private link that's yours](https://www.miinideck.com/use-cases/share-a-gamma-deck): Made a deck in Gamma? Share it as a private, unguessable link on your own terms — no viewer account, off search by default, your name on it. Not a public page, not a PDF attachment. Free to start.
- [Share an interactive infographic — as a live link](https://www.miinideck.com/use-cases/share-an-interactive-infographic): Made an infographic people can hover, filter, and explore? Send a link that keeps it live — not a flattened PNG. Opens in any browser, no login, off search. Free to start.
- [Share a scrollytelling page — a live, private link](https://www.miinideck.com/use-cases/share-a-scrollytelling-page): Made a scroll-driven story — text and visuals that move as you scroll? Send a link that keeps it alive, not a PDF that kills the motion. Opens in any browser, off search. Free to start.
- [Share a generative art piece — a living link](https://www.miinideck.com/use-cases/share-a-generative-art-piece): Made a generative or creative-coding piece that moves and evolves? Send a link that keeps it running — not a frozen frame. Opens in any browser, off search, your name on it. Free to start.
- [Share an e-learning course without an LMS](https://www.miinideck.com/use-cases/share-an-elearning-course): Send a published Storyline, Rise, or Captivate course to a client or SME for review — no LMS, no seat in your authoring tool, no zip they have to unpack. Zip the Publish-for-Web output, get one private link.
- [Share a Genially privately — as your own link](https://www.miinideck.com/use-cases/share-a-genially): Download your Genially as offline HTML, zip it, and host it on a private, unguessable link. Interactions and animations intact, off search, optional password — and on Studio, your own domain instead of a platform URL.
- [QR code to a private page or PDF — one you can update later](https://www.miinideck.com/use-cases/qr-code-to-a-private-page): Generate a QR code for any page or PDF you host here, straight from the dashboard. The URL never changes when you re-upload, so the printed code keeps working even after the content changes. Off search, password optional.
- [Publish HTML from Claude Code — a private link, no deploy step](https://www.miinideck.com/use-cases/publish-html-from-claude-code): Connect miinideck once and Claude Code can publish the page it just built to a private, unguessable link — and replace it in place as you iterate, keeping the same URL. Free to start.
- [Update a shared page without changing the link](https://www.miinideck.com/use-cases/let-your-ai-update-the-same-link): Most hosts mint a new URL every time you upload. Replace the contents at the same private link instead — password and expiry intact, every version kept — so the link you already sent stays the right one.
- [A Tiiny Host alternative for private client delivery](https://www.miinideck.com/use-cases/tiiny-host-alternative): Tiiny Host is built to put a page on the open web fast. If what you need is the opposite — an unguessable, no-index link for one client, with a password and an expiry — that's a different job. Free to start.
- [GitHub Pages private: what plans allow, and the alternative](https://www.miinideck.com/use-cases/github-pages-private-alternative): Private GitHub Pages needs an Enterprise Cloud organisation — and even then, viewers must be GitHub users with repo access. If you need to send a static site to a client, that's a different shape. Free to start.
- [Publish HTML over MCP — a private link your agent can replace in place](https://www.miinideck.com/use-cases/mcp-publish-html): Connect miinideck as an MCP server and any MCP-capable AI tool can publish the HTML it just wrote to a private, unguessable link — with a password and an expiry set in the same call, and revisions replacing the contents at the same URL. Free to start.
- [A Vercel Drop alternative for delivery — one link across revisions](https://www.miinideck.com/use-cases/vercel-drop-alternative): Vercel Drop ships a file to production in seconds, and its docs are explicit that each drop creates a new project. If you need the same link to keep working through five revisions, with a password and an expiry, that's a different job. Free to start.
- [An ngrok alternative for sharing HTML — when the file is finished](https://www.miinideck.com/use-cases/ngrok-alternative-for-sharing-html): ngrok is a reverse proxy to a service that's running. If what you're sharing is a finished HTML file or a built folder, a tunnel means keeping a machine awake to serve something static. Upload it once instead — private link, password, expiry. Free to start.
- [Take payments on a static page — without running a backend](https://www.miinideck.com/use-cases/take-payments-static-page-no-backend): A page with no server can still charge people, because payment providers built the client-side half on purpose. What works, what genuinely needs a server, and where the page itself should live once it can take money. Free to start.
- [Add booking to a one-page site — no backend needed](https://www.miinideck.com/use-cases/add-booking-to-a-one-page-site): A static page can let people book a time, because scheduling tools were built to be embedded in sites their authors don't control. What the embed does, what genuinely needs a server, and where the page lives once it's taking bookings. Free to start.
- [PageDrop alternative — where to move a page that needs a new home](https://www.miinideck.com/use-cases/pagedrop-alternative): PageDrop is winding down, which turns a hosting question into a migration question: get the file back, work out what the old link owes people, and choose the next home on how long it has to last. A private link that stays off search, opens with no account, and can be replaced in place. Free to start.
- [Your HTML host is shutting down — moving a page, not a whole website](https://www.miinideck.com/use-cases/html-host-shutting-down): Most host-shutdown advice assumes a full website with a database and a domain to transfer. If what you actually have there is a page — one HTML file or a folder of static files — the move takes minutes: save it, upload it, send the new link once. Free to start, no account needed to try it.
- [Cloudflare Drop alternative — a private link that still works tomorrow](https://www.miinideck.com/use-cases/cloudflare-drop-alternative): Drop's preview is gone after an hour unless you claim it into an account. If all you need is one person opening one thing tomorrow, drop the same folder here instead: a private link that stays off search, needs no account on their end, and can be replaced in place without changing the address. Free to start.
- [Share a Storybook privately — send the built static site, not a login](https://www.miinideck.com/use-cases/share-a-storybook): Build Storybook to a static folder, zip it, and hand a client or partner team one unguessable link. Every story, every control, no public URL and no seat in your tooling. Optional password and expiry. Free to start.
- [Share an architecture diagram privately — a link, not a screenshot](https://www.miinideck.com/use-cases/share-an-architecture-diagram-privately): Export the diagram to a self-contained HTML page and send one unguessable, no-index link. It opens zoomable and legible on a phone, with no account and no wiki seat. Optional password and expiry. Free to start.
- [Share an HTML5 banner ad — a link, not a zip to unpack](https://www.miinideck.com/use-cases/share-an-html5-banner-ad): Send HTML5 banner ads as a private link the reviewer clicks straight into — animation running, clickthrough live, nothing to unzip. Unguessable and no-index by default, optional password and expiry.
- [Share a Plotly chart — an interactive link, not a screenshot](https://www.miinideck.com/use-cases/share-a-plotly-chart): Export a Plotly figure with write_html and share it as a private link that hovers, zooms and filters in any browser. No Python on their side. Unguessable and no-index by default, optional password and expiry.
- [A Dropbox alternative for sending finished work as a link](https://www.miinideck.com/use-cases/dropbox-alternative-for-sharing-work): Cloud drives are built to sync files; a finished piece of work is better received as a page. Send a private link that opens instantly — no download, no app, no folder to navigate. Unguessable and no-index by default.
- [Share what Claude Cowork made — as a private link](https://www.miinideck.com/use-cases/share-a-claude-cowork-page): Cowork finishes the deliverable; getting it to a client is a separate step. Export it as a self-contained page and send a private link that opens in any browser. Unguessable and no-index by default, optional password and expiry.
- [Share a candidate profile — a private link, not an emailed CV](https://www.miinideck.com/use-cases/share-a-candidate-profile): Send a hiring manager a candidate profile as a link that opens in the browser. Unguessable and never indexed, with optional password and expiry so a profile doesn’t outlive the search.
- [Share a documentation site privately — send the build, not a login](https://www.miinideck.com/use-cases/share-a-documentation-site): Zip a built docs site — MkDocs, Sphinx, or anything that outputs static files — and hand a client one unguessable link. Every page, every search box, no public URL and no wiki seat. Optional password and expiry. Free to start.
- [Share a product catalogue as a link — browsable, private, updatable](https://www.miinideck.com/use-cases/share-a-product-catalog): Send buyers a catalogue that opens in the browser instead of a file they download. One unguessable link, no app, works on a phone. Replace prices without reissuing the link. Optional password and expiry. Free to start.
- [Send a property listing as a private link — photos, floor plan, details](https://www.miinideck.com/use-cases/share-a-property-listing): Put the photos, the floor plan and the details on one page and send a buyer an unguessable link. Not listed publicly, no portal, opens on a phone. Optional password and an expiry for when the sale completes. Free to start.
- [Send guests a house manual — one private link, not a public page](https://www.miinideck.com/use-cases/share-a-house-manual): The door code, the wifi password, the bin day and how the shower works, on one page you send to the guests staying this week. Unguessable link, optional password, and it can close itself after checkout. Free to start.
- [Send an unpublished manuscript as a private link](https://www.miinideck.com/use-cases/share-a-manuscript-privately): Get the draft to your beta readers, your editor or an agent without emailing a file that leaves your hands for good. Unguessable link, optional password, an expiry when the read is over. Free to start.
- [Publish from Claude with a Skill — it offers the link itself](https://www.miinideck.com/use-cases/publish-with-a-claude-skill): The connector gives Claude the tools. The Skill gives it the judgement: offer a private link when it has just built a page, keep the same link on a revision, and switch to the uploader when the file is too big to pass through chat.
- [A menu link you can change without reprinting the QR codes](https://www.miinideck.com/use-cases/share-a-menu): The sticker on the table is printed once. The menu isn’t. Put the menu on a link whose address stays fixed while the contents change, so a price rise or a sold-out dish is an upload, not a print run.
- [Share an HTML file in Slack — including with people outside the workspace](https://www.miinideck.com/use-cases/share-an-html-file-in-slack): A file in Slack belongs to the workspace. Drop the HTML into miinideck instead and paste one private link: it opens for anyone you send it to, in or out of the workspace, with no account and no seat.
- [Publish HTML from an automation workflow — to a private link that keeps its address](https://www.miinideck.com/use-cases/publish-html-from-an-automation-workflow): Your workflow generates the report. Then it has nowhere to put it. Post the file to miinideck from any HTTP step with a personal API token and get a private, unguessable URL — and replace it next run without changing the address.
- [Password-protect the link, not the PDF](https://www.miinideck.com/use-cases/password-protect-a-pdf-link): Locking a PDF and locking the link it arrives on are two different jobs. What each one actually stops, why an open-password PDF breaks in every browser viewer, and how to send one your client can open. Passwords are free on any account.
- [Share a PDF as a private link — no conversion](https://www.miinideck.com/use-cases/share-a-pdf): Share a PDF as a private, unguessable link — the PDF you already exported, uploaded as-is. Opens in any browser with nothing to download and no account. Optional password and expiry. Free to start.
- [Share an image privately — a link only the people you send it to can open](https://www.miinideck.com/use-cases/share-an-image-privately): Upload a PNG or JPEG as it is and get a private, unguessable link that stays out of search. Add a password or an expiry, swap the image later behind the same link. Free to start.
- [Share a Claude Design with a client who has no Claude account](https://www.miinideck.com/use-cases/share-a-claude-design): Claude Design shares inside your organisation. For a client outside it, export the design as HTML and send a private link that opens in any browser: no Claude account, no sign-up, kept out of search by default.
## Content
- [Blog](https://www.miinideck.com/blog): Long-form notes on private HTML delivery, AI artifact sharing, and the tooling around them.
- [How to make a client welcome packet with ChatGPT or Claude (prompt included)](https://www.miinideck.com/blog/make-a-client-welcome-packet-with-ai): A copy-paste prompt that turns ChatGPT, Claude or any chat AI into a client welcome packet your client can read on a phone. What we got back when we ran it, the rules the AI made up on its own, and how to check and update the packet before it reaches a client.
- [How to update a PDF you've already sent without changing the link](https://www.miinideck.com/blog/update-a-pdf-without-changing-the-link): An attachment can't be updated. A link can, if the host lets you replace the file behind it. What Google Drive's Manage versions does, what Drive, Dropbox, OneDrive and Acrobat don't say about the link, when you shouldn't swap a file quietly, and what the reader sees after you do.
- [Can someone outside your company open what you made in ChatGPT, Claude, Gemini or Copilot?](https://www.miinideck.com/blog/who-outside-your-company-can-open-ai-shared-work): It depends less on the AI tool than on the account you made it in. A table of who outside your organisation can open a shared ChatGPT, Claude, Gemini or Microsoft 365 Copilot link, whether they need an account, and whether your admin can switch it off. Checked against each vendor's documentation on 12 October 2026.
- [How to send a demo website to a business that hasn't hired you yet](https://www.miinideck.com/blog/send-a-demo-website-to-a-prospect): You built a sample site for a local business on spec and it's still sitting in your AI builder. What the owner needs to be able to do with the link, what the builder's own URL, a Vercel deploy and a screen recording each give you, and how to send it as a private link that stays out of search and ends on its own.
- [Can I stop someone editing an HTML file I send them?](https://www.miinideck.com/blog/stop-someone-editing-an-html-file-you-send): No. An HTML file is plain text, and whoever has it can change it. What obfuscation, blocking right-click and converting to PDF each stop and don't stop, why sending a link instead of the file changes the problem, and what a link still can't do.
- [How to show a client their website before the final payment (without launching it)](https://www.miinideck.com/blog/show-a-client-the-site-before-final-payment): Launching a site and handing it over have become the same click, which is why freelancers stall when a client says 'looks great, put it live' before the last invoice is paid. What you can hold back until payment, what you can't, six ways to show the work without launching it, and a step-by-step for static builds.
- [How to open an HTML file in Chrome (and why it opens blank)](https://www.miinideck.com/blog/how-to-open-an-html-file-in-chrome): Double-click, drag it in, or use the open-file shortcut — that part takes seconds. The useful part is what to do when it opens blank, unstyled, as a wall of code, or in Notepad instead of the browser. Four symptoms, four different causes, and how to tell them apart in the Console.
- [Best free way to send an HTML email to a client for approval before it goes out](https://www.miinideck.com/blog/best-free-way-to-share-an-html-email-for-approval): A test send, your ESP's preview, a rendering-test service, a screenshot, the .html as an attachment, or a hosted page link: what each one shows the client, what a browser preview can and can't prove about an email, and the combination that gets sign-off without surprises.
- [Best free way to share API docs with a partner before launch](https://www.miinideck.com/blog/best-free-way-to-share-api-docs-privately): Postman's published docs, SwaggerHub, a hosted docs portal, GitHub Pages, the raw OpenAPI file, or one rendered HTML page behind a private link: what each is built for, how to turn a spec into a single page with one command, and what to strip out before anyone outside sees it.
- [Quarto Pub vs RPubs vs Posit Connect vs GitHub Pages: where to publish a Quarto or R Markdown report](https://www.miinideck.com/blog/best-free-way-to-publish-a-quarto-or-r-markdown-report): Quarto Pub, RPubs, Posit Connect Cloud, GitHub Pages or Netlify, an HTML attachment, or a private link: what each one is built for, why a rendered report loses its styling when you send the HTML on its own, and which route fits a report meant for a client or an advisor.
- [Best free way to share an interactive chart as a link](https://www.miinideck.com/blog/best-free-way-to-share-an-interactive-chart): A screenshot, an HTML attachment, Datawrapper, Flourish, Tableau Public, a public site, a drive, or a private link: what each one is built for, who ends up able to see the chart, and why the same Plotly chart can be 4.8 MB or 12 KB.
- [Best free way to share an image as a link, without it being compressed or posted](https://www.miinideck.com/blog/best-free-way-to-share-an-image-as-a-link): Chat, email, Google Drive, Dropbox, Google Photos, an image host, WeTransfer, or a private link: which ones keep your pixels, which ones make the image public, and which one fits a mockup that needs sign-off.
- [Best free way to share a Jupyter notebook with someone who doesn't have Jupyter](https://www.miinideck.com/blog/best-free-way-to-share-a-jupyter-notebook): Emailing the .ipynb, GitHub, nbviewer, Colab, Binder, a PDF, or an HTML export on a link: what each one is built for, what the reader needs, and the export trap that makes Plotly charts disappear without an error.
- [Where to put a file online so someone can open it: the complete guide](https://www.miinideck.com/blog/pillar-where-to-put-a-file-online): You have a finished file (an HTML page, a ZIP of a site, a PDF) and someone needs to open it. Two questions rule out most of the options. Then a map by what you're holding, how you were going to send it, and which host you're weighing up.
- [How do I add a favicon to a single HTML file with no separate icon file?](https://www.miinideck.com/blog/add-a-favicon-to-a-single-html-file): Every favicon tutorial says to put favicon.ico in your site root. If all you have is one HTML file, there is no root. Write the icon into the file itself as a data: URI. Copy-paste snippets for SVG, PNG and emoji.
- [Best free way to share a PDF as a link: the options compared](https://www.miinideck.com/blog/best-free-way-to-share-a-pdf-as-a-link): Attachment, Drive or Dropbox link, Acrobat, a PDF-to-link tool, or a private link: what each one is built for, what your reader has to do, and what none of them can fix about a PDF.
- [Share a Claude Doc or Slides deck with a client who has no Claude account](https://www.miinideck.com/blog/share-a-claude-doc-or-slides-deck-with-a-client): You sent a Claude Slides deck with 'anyone with the link' and your client got a sign-up screen. Why that happens, what Docs, Slides and Design actually export, and how to get the work in front of someone who will never make a Claude account.
- ["Comments aren't available while this Artifact is shared publicly": getting a client's notes on a Claude Code page](https://www.miinideck.com/blog/claude-artifact-comments-not-available-shared-publicly): You sent a client the public link to a Claude Code artifact and asked them to mark up what to change. There's nowhere to comment. That's by design. Here's the rule, which plans it leaves without a comment option for outside viewers, and how to collect pinned notes anyway. Checked against Anthropic's docs on 15 September 2026.
- [ChatGPT Sites usage limit reached: which Sites can move out, and which can't](https://www.miinideck.com/blog/chatgpt-sites-usage-limit-what-can-move): Hit a ChatGPT Sites usage limit? Your Sites aren't gone. Here's how to tell the ones that are just pages, which travel, from the ones that need Sites underneath them.
- [How do I edit a password-protected HTML page without re-encrypting it?](https://www.miinideck.com/blog/editing-a-password-protected-html-page): Client-side encryption tools turn your page into an encrypted file, so the protection and the artifact are the same object — every edit means re-running the tool and re-uploading. What that actually costs, the salt setting that decides whether your old share links survive, and when a hosted password is the better trade.
- [How do I hand off client work that lives in a git repo?](https://www.miinideck.com/blog/give-a-client-a-link-not-a-repo): Running the studio out of one folder per client is a good structure for making the work. It stops at the point where the client has to open it — a private repo needs a GitHub account, and Pages built from one is public by default. What the handover step actually needs, and how to add it without breaking the folder.
- [Sharing a Lottie animation as a link someone can just open (2026)](https://www.miinideck.com/blog/share-a-lottie-animation-as-a-link): A .json Lottie is not a page — hand it to a client and they get a wall of numbers. What it takes to turn one into something that opens in any browser, and why the answer is smaller than the tooling suggests.
- [Sending a deck and knowing whether it was opened (2026)](https://www.miinideck.com/blog/send-a-deck-and-know-whether-it-was-opened): The attachment tells you nothing after it leaves. A link tells you it was opened, when, and for how long — which is most of what you wanted and less than people assume. What the number actually means, and where it stops being evidence.
- [Do you need a client portal, or just a link for each thing? (2026)](https://www.miinideck.com/blog/do-you-need-a-client-portal-or-just-a-link): "Client portal" is one word covering two very different jobs. One of them needs software with logins and permissions. The other one is four links in an email, and buying the first when you needed the second is how a solo practice ends up administering a system nobody logs into.
- [Handing off a single-file prototype when you just need a decision](https://www.miinideck.com/blog/handing-off-a-single-file-prototype-for-a-decision): The prototype took an afternoon. Getting it in front of the person who has to say yes takes longer — because a repo-and-deploy is too much ceremony, an attachment opens as code, and a platform link drags your reader onto the platform. What the handoff actually needs.
- [Share a portfolio piece before the full site is public (2026)](https://www.miinideck.com/blog/share-a-portfolio-piece-before-its-public): You have one finished case study but the portfolio site isn't live yet. Here's how to send that single piece as a private link — without pushing a half-built site or flattening it into a doc.
- [Host a webinar, resource, or campaign page — without building a website](https://www.miinideck.com/blog/host-a-webinar-or-resource-page-without-a-website): You need one page live for a webinar, a resource hub, or a campaign — not a whole website. Here's how to stand up that page from a single HTML file: a private, no-index link in seconds, with expiry, custom domain, and an honest line on where registration capture belongs.
- [Gate a freebie behind engagement, not a paywall: the semi-private freebie](https://www.miinideck.com/blog/gate-a-freebie-behind-engagement-not-a-paywall): There's a third option between a free public download and a locked paywall: let people earn the freebie by engaging — a comment, a reply, a DM keyword. A private, unguessable link is the delivery layer that makes the engagement-gate work without an account wall or a public file.
- [The creator's guide to private share links (2026)](https://www.miinideck.com/blog/the-creators-guide-to-private-share-links): Freebies, drafts, little tools — as a creator you keep needing a link that reaches specific people and nowhere else. A working guide to private share links for the three things creators send most.
- [A link-in-bio freebie that doesn't look amateur (2026)](https://www.miinideck.com/blog/a-link-in-bio-freebie-that-doesnt-look-amateur): Your freebie is the first thing a stranger ever taps in your bio — and a raw storage or design-tool URL gives you away before the page loads. Why a link-in-bio freebie should ride on a branded, own-domain link, and how to do it with no website and no server.
- [Turn an AI-built mini-tool into a lead magnet on a private link](https://www.miinideck.com/blog/turn-an-ai-built-tool-into-a-lead-magnet): An AI tool writes you a working mini-tool — a calculator, a quiz, an estimator — from one prompt. Put it on a private link you control and it becomes a stronger lead magnet than any PDF, because people use it instead of just downloading it. Here's the conversion loop, and where the browser ends and a backend begins.
- [Run a comment-to-DM funnel with a hosted freebie: the full motion, link first](https://www.miinideck.com/blog/run-a-comment-to-dm-funnel-with-a-hosted-freebie): The comment-to-DM play, end to end. You reply with a freebie, move the conversation to a DM, and let one private hosted link carry the handoff. Here's the motion step by step — what to say, where the link goes, and why a private hosted page beats an attachment or a public deploy.
- [Claude Code wants to publish an artifact. Who can open that link?](https://www.miinideck.com/blog/claude-code-wants-to-publish-an-artifact-who-can-open-it): The permission prompt arrives mid-session and the honest answer is: by default, only you. What publishing actually does, when a link becomes public, and where Anthropic's own pages disagree — on which plans have it, and on whether a public link needs a Claude sign-in. Checked against their docs on 12 September 2026, sign-in rechecked 19 September 2026.
- [Get a single-file (or static) export out of bolt.new for a stable link (2026)](https://www.miinideck.com/blog/get-a-single-file-export-from-bolt): Bolt.new previews live behind a session URL that changes and can lapse. How to pull a static export — one HTML file or a built dist folder — out of Bolt and turn it into one stable, private link.
- [It works when I open the file. It breaks once it's a link.](https://www.miinideck.com/blog/works-locally-but-not-once-its-a-link): The page runs perfectly from your desktop, then one button stops working on the hosted version — usually fullscreen, copy-to-clipboard, or a fetch. Four causes, each with a one-line test you can run in the browser console to tell them apart.
- [Export a Slidev or reveal.js deck to a private link (2026)](https://www.miinideck.com/blog/export-a-slidev-or-revealjs-deck-to-a-link): Your Slidev or reveal.js deck is already a self-contained web app. Skip the public deploy, the screenshot, and the PDF flattening: run the build, zip the dist folder, and turn it into one private link that keeps every fragment, transition, and code highlight stepping exactly as it did locally.
- [Export clean, self-contained HTML from v0 or Lovable for private sharing (2026)](https://www.miinideck.com/blog/export-html-from-v0-or-lovable): v0 and Lovable build React/Next projects, not single files — so "export" means a folder or a public deploy, neither of which is a quiet private link. Here's how to get a clean build and share the static slice privately.
- [Can you password-protect a page on a free plan?](https://www.miinideck.com/blog/password-protect-a-page-on-a-free-plan): You open your host's protection settings and get an upgrade screen instead. The question isn't how to add a password — it's whose free plan has that switch, what the switch actually locks, and when paying for it beats moving.
- [Export a shareable build from Replit without keeping the repl awake (2026)](https://www.miinideck.com/blog/export-a-shareable-build-from-replit): A Replit webview link dies when the repl sleeps. If your build is static, you can lift the output out of the container and serve it from a link that never spins down. Here is the export path — and the honest line where it stops applying.
- [Host an Angular build as a link: what works, and where deep links break](https://www.miinideck.com/blog/host-an-angular-build-as-a-link): You ran ng build and now someone needs to open it — QA, a client, a stakeholder — before the real deployment gets scheduled. What to upload, what happens to relative asset paths, and the one honest limit: a refresh on an in-app route returns 404 unless you switch to hash routing.
- [Send an HTML form straight to your own Google Sheet](https://www.miinideck.com/blog/html-form-to-your-own-google-sheet): A static page can post form submissions into a Sheet you already own, using a Google Apps Script web app as the endpoint. The fourth shape most 'form without a backend' guides leave out — how it works, the two settings that trip everyone up, and when a form service is still the better call.
- [Is client work allowed on a free hosting tier?](https://www.miinideck.com/blog/is-client-work-allowed-on-a-free-hosting-tier): You built a one-page site someone paid you for, and you are about to put it on a free plan. The question is not whether the free plan can handle it — it is whether the host's own terms permit it. Two different walls, and only one of them shows up as a bill.
- [Export a self-contained HTML from a Cursor project (2026)](https://www.miinideck.com/blog/export-a-self-contained-html-from-cursor): Cursor builds projects as folders of linked files, not one shareable artifact. Three reliable ways to collapse a Cursor build into a single self-contained HTML you can drop on a private link — and the one case where you deploy instead.
- [The best way to deliver AI-generated work to clients (2026)](https://www.miinideck.com/blog/best-way-to-deliver-ai-generated-work-to-clients): How analysts, freelancers, and agencies hand AI-built client work over as a private, branded link instead of a raw chat export — so the work reads as a finished decision, not a transcript of the model making it.
- [When does free HTML hosting stop being free?](https://www.miinideck.com/blog/when-does-free-html-hosting-stop-being-free): Every free tier has a wall somewhere. On a private-link host the wall is not storage — it is time, and how many links you are allowed to keep. Here is exactly where each limit sits, what happens on day 8, and the three situations where free genuinely never runs out.
- [Your agent finished the work. Then the machine it lived on went away.](https://www.miinideck.com/blog/agent-output-dies-with-the-sandbox): An agent writes a report, tells you the file path, and hours later the download button does nothing. The output was living on the computer that made it, and that computer was designed to disappear. Why this failure is structural rather than a bug, and what to do at the moment the work is finished.
- [How to Make a Shared Link Self-Destruct on a Schedule (2026)](https://www.miinideck.com/blog/how-to-make-a-shared-link-expire): A scheduled self-destruct retires a shared link on a date you set at upload — no reminder, no manual deletion. Here's why scheduling beats deleting by hand, how to pick the date, and what the viewer sees when the link retires.
- [Anyone can read your page's source. Which services can it still use?](https://www.miinideck.com/blog/public-source-page-which-services-work): A static page has no backend and no secrets, which sounds like it rules out forms, payments and bookings. It doesn't. The line isn't 'frontend versus backend' — it's whether the credential you'd have to publish is designed to be published. How to tell, in one question, before you build.
- [How to share a data dashboard without giving someone a login (2026)](https://www.miinideck.com/blog/how-to-share-a-dashboard-without-giving-a-login): The person who needs your dashboard usually has no seat in your BI tool — and buying one is the wrong fix. How to ship a live, interactive dashboard to a no-login viewer, and where a live connection beats a snapshot.
- [The best free way to host a page without making an account (2026)](https://www.miinideck.com/blog/best-free-way-to-host-a-page-without-an-account): Every list of free HTML hosts assumes you'll sign up. If you won't, the field narrows to a handful — and each one charges you for it in a different currency. Which hosts genuinely need no account, what you give up, and when signing up is the cheaper trade.
- [The best free way to host a ZIP bundle as a website (2026)](https://www.miinideck.com/blog/best-free-way-to-host-a-zip-bundle): When the page is a folder rather than one file, the hosting question changes and so do the ways it breaks. Which free hosts take a ZIP, what happens to your folder structure once they unpack it, and the four failure modes that account for almost every broken zipped site.
- [How to Put an Interactive Tool on a Link Without Code (2026)](https://www.miinideck.com/blog/how-to-put-an-interactive-tool-on-a-link-without-code): Your AI built a working calculator. It runs in the chat preview and nowhere else. Here is how to get that interactive tool onto a real shareable link without touching a deploy command.
- [How to collect feedback on a prototype without a meeting (2026)](https://www.miinideck.com/blog/how-to-collect-feedback-on-a-prototype-without-a-meeting): Skip the review call. Send the prototype as a private link, let people pin comments to the exact element with no account, and read every note in one place — async, on their schedule and yours.
- [Codex shared thread snapshots: what the link actually hands over](https://www.miinideck.com/blog/codex-shared-thread-snapshot-what-it-hands-over): Codex can now share a thread as a read-only link. It shows someone how the work was reasoned — not the working thing it produced, and not a copy that keeps up with you. Here is exactly what the snapshot carries, the four boundaries the announcement doesn't spell out, and how to tell which of the two jobs you're actually doing.
- [How to share an AI-built page with a client (and make it actually client-ready first)](https://www.miinideck.com/blog/how-to-share-an-ai-built-page-with-a-client): The AI tool built the page. Sending it to a client is a second job: stripping the construction site, making it read as yours, and putting it behind a private link. A practical checklist for turning AI output into a client-ready handoff.
- [How to prompt AI to inline images as base64 so the file is truly self-contained (2026)](https://www.miinideck.com/blog/prompt-ai-to-inline-images-as-base64): A self-contained HTML file means the images travel inside it, not as links. The prompt wording that makes an AI base64-encode assets on the first pass — plus the size budget, what to inline, and what to leave alone.
- [Prompt AI for print- and PDF-friendly HTML (2026): the phrases that survive Ctrl+P](https://www.miinideck.com/blog/prompt-ai-for-print-and-pdf-friendly-html): Most AI-built HTML looks right on screen and breaks the moment someone hits Ctrl+P. The exact prompt clauses, CSS hooks, and a ninety-second verification pass that make a page export to PDF cleanly the first time.
- [Where to put HTML that Claude Code generated, so someone else can open it](https://www.miinideck.com/blog/where-to-put-html-claude-code-generated): Claude Code wrote the file. Now a teammate or a client has to see it working — and the obvious options each solve a different half of that. An honest split across GitHub Pages, Notion, paste-style hosts, an internal server, plain email, and a private link, judged against the five things people actually ask for.
- [Prompt AI for a multi-page site that still ships as one bundle (2026)](https://www.miinideck.com/blog/prompt-ai-for-a-multi-page-site-in-one-bundle): A multi-page site usually means a router and a server. Prompt patterns that give you real pages — Home, Pricing, About — inside one self-contained file or one ZIP you can drop at a private link.
- [Prompt AI for accessible HTML: labels, contrast, keyboard (2026)](https://www.miinideck.com/blog/prompt-ai-for-accessible-html-output): AI builders optimize for the preview — and a screen reader, a keyboard, and a contrast check are exactly what a preview can't show. Four things AI drops unless you ask, the prompt block that puts them back, and a three-minute check.
- [Check the page on a real phone before you send it (2026)](https://www.miinideck.com/blog/check-your-page-on-a-phone-before-you-send-it): Desktop preview says the page is fine. The phone disagrees, and you find out after the client already has the link. Here's the loop that catches it first — and the part of the problem no host can fix for you.
- [Prompt AI for dark mode and theming in one file (2026)](https://www.miinideck.com/blog/prompt-ai-for-dark-mode-and-theming-in-one-file): AI gives you a dark mode that flashes white, forgets the toggle, and hardcodes one shade of gray everywhere. The token-first prompt that makes theming survive in a single self-contained HTML file.
- [Prompt patterns for a single-file interactive chart or dashboard from AI (2026)](https://www.miinideck.com/blog/prompt-ai-for-a-self-contained-chart-or-dashboard): A chart or dashboard is the AI output most likely to break on delivery — it fails in two invisible ways at once: the library 404s and the data loads from nowhere. Five prompt patterns that produce one interactive file that renders anywhere.
- [An email attachment vs a link for deliverables: size, rendering, and control in 2026](https://www.miinideck.com/blog/an-email-attachment-vs-a-link-for-deliverables): Sending a file attaches a frozen copy to an inbox; sending a link hands over a URL you still control. The three places that gap shows up — size ceilings, what actually renders, and who holds the deliverable after it lands.
- [Gemini says "could not create a public link": what that message actually means (2026)](https://www.miinideck.com/blog/gemini-could-not-create-a-public-link): The Gemini share button fails and the error tells you nothing. Usually it isn't a bug and it isn't your file — public link sharing is off by default on work and school accounts, and the switch is one only an admin can flip. Here's how to tell, and what to do when you can't wait for them.
- [Screen recording vs a live link for review: what each one loses (2026)](https://www.miinideck.com/blog/screen-recording-vs-a-live-link-for-review): A Loom or screenshot shows the reviewer your build. A live private link lets them click through it themselves. Here's exactly what each format loses in transit — and when a recording is still the right call.
- [Your agent edits the page ten times an hour. What is each host counting?](https://www.miinideck.com/blog/when-your-agent-redeploys-ten-times-an-hour): Static hosts are metered on the assumption a human edits a few times a day. An agent doesn't work that way. Which hosts count builds, which count deployments, which count nothing — and where the bill actually comes from.
- [CodeSandbox / StackBlitz vs a private link: when to move off the sandbox preview (2026)](https://www.miinideck.com/blog/codesandbox-stackblitz-vs-a-private-link): A sandbox preview link is bound to a live session and a project you keep open. A private link is a finished artifact. Here's exactly when the preview stops being the right thing to send — and what to send instead.
- [Cloudflare Pages vs a private link: when each is the honest fit (2026)](https://www.miinideck.com/blog/cloudflare-pages-vs-a-private-link): Cloudflare Pages is a public, global CDN site — built to be found and to scale. A private link is built to reach a named audience and nobody else. They solve opposite halves of "I made a page, now what." Here's the honest fit for each, where the backend boundary sits, and how to pick in one question.
- ["A secret URL isn't real security" — what that objection gets right, and where it stops](https://www.miinideck.com/blog/is-an-unguessable-link-actually-secure): Ask an AI assistant how to share a page privately and it will usually warn you that an unguessable URL is not real privacy. Half of that warning is correct. This is the half that isn't, the threats a random link genuinely does not cover, and the point where you should stop and put a login in front of it instead.
- [You already sent the link. Now the file changed. (2026)](https://www.miinideck.com/blog/replace-a-published-html-file-without-git): Replacing a page you have already handed someone is a different problem from publishing it the first time. Why the usual answer is 'learn git', who that answer is actually for, and what the other routes really cost.
- [How to give a .md file to someone who doesn't read markdown](https://www.miinideck.com/blog/share-a-markdown-file-with-a-non-technical-teammate): Send the raw file and they see asterisks. Export to PDF and you lose easy revisions. The third option — and how to pick between the three by what the document has to do next.
- [GitHub Pages vs a private link: when each fits (2026)](https://www.miinideck.com/blog/github-pages-vs-a-private-link-when-each-fits): GitHub Pages publishes a public, git-tracked site to the open web. A private unguessable link delivers a self-contained page to specific people. Here is the honest split — by who reaches it, what the URL is for, and where the work lives — so you pick the right one instead of bending one to fit.
- [PageDrop alternatives: where to move your page before it goes (2026)](https://www.miinideck.com/blog/pagedrop-is-winding-down-where-to-move-your-page): New uploads have ended and the site runs only until the last existing page hits its expiry. PageDrop bundled three things most hosts split up — instant account-free publishing, expiry as a feature, and a public gallery. Here is which alternative covers which, compared side by side, and how to get your file back first.
- [Claude's Publish button is greyed out: which of the four reasons is yours](https://www.miinideck.com/blog/claude-publish-button-greyed-out): A disabled Publish button isn't one bug — it's four different situations wearing the same grey. Only one of them clears if you try again. Here's how to tell which one you're looking at, and how to get the page to the person waiting for it either way.
- [HTML deliverables by industry: pitch decks, board reviews, research, design, events (2026)](https://www.miinideck.com/blog/pillar-html-deliverables-by-industry): Where an HTML link beats a PDF or a slide file, sector by sector — fundraising, board reporting, UX research, architecture, and time-bound event sites.
- [The private-link controls: expiry, password, domains, analytics — and what each plan unlocks (2026)](https://www.miinideck.com/blog/pillar-private-link-controls): Every lever a private link gives you — expiry, password, searchable opt-in, custom domain, white-label, analytics — what each one is for, and which are free versus paid.
- [Prompting any AI tool for portable, shareable HTML: the complete guide (2026)](https://www.miinideck.com/blog/pillar-prompting-ai-portable-html): Prompt patterns that get Claude, ChatGPT, v0, Lovable, and Cursor to ship self-contained, lightweight, interactive HTML you can actually send as a link.
- [Self-contained HTML, end to end: the complete guide (2026)](https://www.miinideck.com/blog/pillar-self-contained-html-complete-guide): Everything between a file and a link someone can open — making HTML self-contained, sizing it, viewing it online, choosing it over PDF, and sending it to one person.
- [Sharing what an AI tool builds, before you deploy: the complete guide (2026)](https://www.miinideck.com/blog/pillar-sharing-ai-built-apps): From a Claude artifact to a vibe-coded app to a multi-file Codex bundle — how to share what an AI tool builds, as a private link, without a deploy pipeline.
- [Sharing finished client work, by role: the complete guide (2026)](https://www.miinideck.com/blog/pillar-sharing-client-work-by-role): Designers, freelancers, agencies, consultants, in-house teams, and educators all hit the same wall — handing a finished HTML deliverable to the people who should see it. How the channel choice changes by role.
- [Does sharing a link put your page on Google? (2026)](https://www.miinideck.com/blog/does-a-shared-link-get-indexed): Two things people say about unlisted links are both half right. Whether a page gets indexed has almost nothing to do with how secret the address is — it comes down to two questions you can check yourself in about a minute.
- [Your teammate's agent can't edit the link you sent (2026)](https://www.miinideck.com/blog/html-doc-two-agents-both-edit): HTML has quietly become a document teams work on together — reports, decks, small tools. But a link is a reading surface, and the thing your colleague's AI needs to open is the source. Where each one lives, and why collapsing them causes the mess.
- [Sharing a multi-file AI app (Codex, Bolt) as one private link — the ZIP bundle path (2026)](https://www.miinideck.com/blog/share-codex-app-multi-file-zip-bundle): AI builders often export an app as a folder — index.html plus separate CSS, JS, and assets — not a single file. How to share the whole thing as one private link without flattening it or deploying it.
- [Private link vs public deploy: when each fits (2026)](https://www.miinideck.com/blog/private-link-vs-public-deploy-when-each-fits): A private link and a public deploy are the two ends of one dial: how findable the page should be. A job-by-job map of where each endpoint fits, plus the in-between cases most real work actually lands in.
- [You can see the HTML file. Now decide who else can. (2026)](https://www.miinideck.com/blog/who-should-be-able-to-open-this-html-file): Opening an HTML file and publishing one are different decisions, and most tools quietly make the second for you. The fork between a public address and an unguessable one — what each is for, and how to tell which the file in front of you needs.
- [Your own domain, without a website builder (2026)](https://www.miinideck.com/blog/your-own-domain-without-a-website-builder-2026): You already have the finished HTML page. Putting your own domain on it is one DNS record and one upload — not a rebuild inside a website builder's editor. The walkthrough, and the one case where you need Vercel or Netlify instead.
- [How to show someone your AI-built app before you deploy it (2026)](https://www.miinideck.com/blog/sharing-vibe-coded-app-as-private-link-2026): You built an app in Bolt, v0, Replit, Lovable, or Claude and it works — but it only works on your machine, and the deploy pipeline is a bigger commitment than the question you're trying to answer. What fits the in-between moment: a live link in seconds, and you decide who opens it.
- [You added .htaccess to password-protect your page — and nothing happened](https://www.miinideck.com/blog/htaccess-password-protect-doesnt-work-on-static-hosts): The tutorial worked for the person who wrote it. It does nothing on a static host, because .htaccess is an Apache file and a static host doesn't hand you an Apache to configure. What the file is actually doing up there, what to delete today, and what to use instead.
- [Your interactive HTML report is going into SharePoint. Two walls it will hit.](https://www.miinideck.com/blog/html-page-in-sharepoint-outside-your-tenant): SharePoint is getting the ability to render uploaded HTML as a page. Before you route client deliverables through it: custom script is blocked by default and resets to blocked after 24 hours, and letting someone outside the tenant open it is a separate decision your admin owns.
- [Who opened my shared link? Turn every send into a follow-up signal (2026)](https://www.miinideck.com/blog/who-opened-my-shared-link-2026): A shared link tells you more than that it was delivered — it tells you when someone opened it. Here is how a view timestamp on a private link turns client, sales, and creator follow-up from guesswork into timing.
- [Wedding RSVP microsites: from setup to event-day archive (2026)](https://www.miinideck.com/blog/wedding-rsvp-microsites-from-setup-to-event-archive-2026): The wedding site lives for six months around the date and shouldn't outlive the thank-you notes. A setup pattern that handles the lifecycle without leaving a $14/mo subscription running into next year.
- [Host a lead magnet that never dies: an evergreen freebie on a link that won't expire](https://www.miinideck.com/blog/host-a-lead-magnet-that-never-dies-2026): A lead magnet on a link that self-destructs in days is a slow leak in your funnel. Why marketers and coaches need a never-expire private link, and how one URL turns a freebie into an evergreen, semi-private channel from comment to DM.
- [Claude artifact storage temporarily unavailable: what to do with the work in front of you (2026)](https://www.miinideck.com/blog/claude-artifact-storage-unavailable-2026): The message is about Anthropic's side, not yours, and it usually clears on its own. The risk isn't the outage — it's what people press while waiting. Here's the safe order of operations, and how to get the work out of the artifact while you wait.
- [Where to host an AI-built page: private link vs public deploy vs the tool's own share (2026)](https://www.miinideck.com/blog/where-to-host-an-ai-built-page-2026): You built a page with an AI tool. Three places it can live — the builder's own share URL, a public deploy, or a private link — and a clear way to decide between them based on whether the page has a backend and who is supposed to reach it.
- [Your Claude artifact disappeared: where it actually went, and how to stop it happening again (2026)](https://www.miinideck.com/blog/claude-artifact-disappeared-2026): You built something in Claude, came back weeks later, and it's gone. Usually it isn't deleted — it's sitting inside a conversation you can no longer find. Here's how to get it back, and the one case where it really is unrecoverable.
- [What Claude artifacts can't do — the four walls, in the order you hit them (2026)](https://www.miinideck.com/blog/claude-artifact-limitations-what-it-cant-do-2026): Artifacts handle more than people expect right up until they don't. The four limits that actually stop projects — no backend, storage that only exists after publishing, an irreversible unpublish, and the settings toggle — and what to do at each one.
- [Claude artifacts not working: is it your settings, your conversation, or Anthropic? (2026)](https://www.miinideck.com/blog/claude-artifacts-not-loading-what-to-check-2026): Artifacts stop appearing and every guide says the same four generic fixes. Here's the order that actually separates a setting on your side from an outage on theirs — starting with the one documented cause that produces total failure.
- [Educator lesson plans / class materials as private HTML (2026)](https://www.miinideck.com/blog/educator-lesson-plans-private-html-materials-2026): Materials trapped in the LMS disappear when the semester ends. The static HTML + private link shape lets a lesson live where the educator chooses, not where the institution provides.
- [Your published Claude artifact is a blank page: how to tell which of three things broke (2026)](https://www.miinideck.com/blog/published-claude-artifact-blank-page-2026): The artifact works in the chat, publishing succeeds, and the link opens to nothing. Three different failures produce that same white screen, and one thirty-second check tells you which one you have.
- [Architectural / interior design previews — where the file shape matches the client review](https://www.miinideck.com/blog/architectural-interior-design-previews-private-html-2026): 3D renders flattened to PNG. Floor plans frozen in PDF. Section toggles lost in screen recording. The HTML preview shape that keeps the interactivity alive for client review.
- ["Add people" vs "Copy link": what each button actually does (2026)](https://www.miinideck.com/blog/collaborator-vs-copy-link-what-each-one-actually-does-2026): Every cloud drive gives you two ways to share the same file, and they work on completely different principles. One grants a person access; the other grants a URL access. Knowing which is which decides who can still open your file in a year.
- [Your workflow runs again tomorrow. Does the client get a new link? (2026)](https://www.miinideck.com/blog/when-your-workflow-republishes-the-page-every-run-2026): Automating the publish step is easy on the first run. The decision appears on the second: mint a fresh URL, or replace the contents at the old one. One of those quietly rots every link you've already sent, and nothing warns you.
- [Embedding a PDF in an HTML page you're about to send (2026)](https://www.miinideck.com/blog/embedding-a-pdf-in-an-html-page-you-plan-to-share-2026): The iframe snippet works on your laptop because the PDF is sitting next to the HTML. The moment the page travels, it's two files — and only one of them arrives. What actually survives the trip.
- [Your AI gave you a placeholder, not a link (2026)](https://www.miinideck.com/blog/ai-gave-me-a-placeholder-url-not-a-real-link-2026): It looked like a URL. You sent it. Most of the time it never existed — but one of these is the opposite case: means an address was there and got redacted. How to tell which one you have, in one second, and what each one actually needs.
- [You published the wrong file. Can you take it back? (2026)](https://www.miinideck.com/blog/published-the-wrong-file-can-i-take-it-back-2026): Instant hosts trade takedown for tamper-proofing — and most people meet that trade at the worst possible moment. What immutable actually means, why support usually can't help, and the three questions worth asking before you press publish.
- [Your agent published a page. Five things to check before you send it (2026)](https://www.miinideck.com/blog/your-agent-published-a-page-what-to-check-2026): The agent handed you a URL and said it's live. It probably is. What it didn't tell you is who can open it, how long it lasts, whether the address is guessable, and what happens to it when you revise — four defaults chosen for you, none of them announced.
- [Are Grok share links public? What the link exposes (2026)](https://www.miinideck.com/blog/what-a-grok-share-link-actually-shares-2026): Yes — on the consumer product a Grok share link is public, and xAI says a publicly shared link may be indexed by a search engine. On Grok Business it works close to the opposite. Here's what the recipient gets, and how to send the finished result without the whole chat.
- [You attached an HTML file and it opened as raw code (2026)](https://www.miinideck.com/blog/html-attachment-opens-as-raw-code-2026): The attachment arrived, nothing was blocked, and your recipient sees markup instead of the page. That's three different email failures people keep merging into one. Here's which one you hit, and why the fix isn't a different attachment.
- [Google Drive shows your HTML file as code? How to open it as a page (2026)](https://www.miinideck.com/blog/html-in-google-drive-shows-code-2026): Drive stopped rendering HTML years ago, so exporting again won't help. Three ways to get the page in front of someone: a viewer add-on, a download, or a link that opens as the page. Here's which one fits, and why Drive shows code in the first place.
- [Sending a 50MB HTML file when email refuses (2026)](https://www.miinideck.com/blog/sending-50mb-html-file-when-email-refuses-2026): Email providers cap attachments around 20-25MB. The fix when the file is bigger isn't to compress harder — it's to send the URL instead.
- [The Skill is installed and publishing still fails: how to find the layer that broke (2026)](https://www.miinideck.com/blog/when-publishing-from-a-claude-skill-fails-2026): Nothing happened when you asked Claude to publish. There are four separate things it could mean, they look identical from the chat window, and each has a different fix. Here's how to tell them apart in order.
- [It opens on your computer but not on their phone (2026)](https://www.miinideck.com/blog/why-your-page-opens-on-desktop-but-not-on-their-phone-2026): The page is fine. Your computer is fine. What differs is that a desktop knows what to do with an HTML file and a phone mostly doesn't — so the fix depends on whether you sent a file or an address. Here's how to tell which you sent.
- [Will a free link still work next year? (2026)](https://www.miinideck.com/blog/will-a-free-link-still-work-next-year-2026): Free hosting comes in two shapes, and they fail in opposite directions. Here's what actually happens when a free quota runs out, what expiry does and doesn't destroy, and how to match the shape to what you're sharing — including where we're the wrong answer.
- [Your 12-week program is a PDF, and week 4 is where it falls apart (2026)](https://www.miinideck.com/blog/delivering-a-coaching-program-as-a-link-2026): A training or coaching program delivered as a file works on day one and degrades from there — pinch-zooming on a phone, a client on last month's version, no way to fix a typo. Here's what changes when the program lives at a link instead.
- [Five weeks in, your client has five links and no idea which one is this week's (2026)](https://www.miinideck.com/blog/weekly-report-that-keeps-the-same-link-2026): Recurring reports break in a way one-off deliverables don't: every send produces another address, and the old ones keep working with old numbers in them. Here's the version where the report has one address for the whole engagement.
- [Your client says the link won't open — and it's their mail gateway, not your file (2026)](https://www.miinideck.com/blog/why-the-link-you-sent-got-blocked-2026): You send a delivery link, the reply is 'blocked by our security policy.' Nothing is wrong with your file. Here's what actually inspects a link between you and them, why unfamiliar domains lose that inspection, and what you can do from your side.
- [Getting comments from people who don't have an account (2026)](https://www.miinideck.com/blog/comments-from-people-without-an-account-2026): Comment threads normally require identity, and for good reason — a note has to belong to someone. Here's how a review works when the reviewer signs into nothing, what that costs, and when the trade is the right one.
- [Delivering an AI-written client report (2026)](https://www.miinideck.com/blog/delivering-an-ai-written-client-report-2026): The writing got fast. The handover didn't. Here's why the last step of client work — getting the finished thing in front of the client — quietly became the slow part, and what a good version of it looks like.
- [Every feedback tool asks for a URL. You have a file. (2026)](https://www.miinideck.com/blog/feedback-tools-want-a-url-you-have-a-file-2026): Website annotation tools start by asking where the page lives — a reasonable assumption that quietly excludes the most common case in 2026: an HTML file your AI just made, sitting in your downloads folder, due in front of a client this afternoon.
- [Getting HTML5 banner ads approved without sending a zip (2026)](https://www.miinideck.com/blog/getting-html5-banner-ads-approved-without-a-zip-2026): The banner zip is correct for trafficking and wrong for approval. Here's why the review round is where ad creative loses time, and how to let the reviewer just watch the thing run.
- [Prompting AI to add forms / RSVP / contact UI without a backend (2026)](https://www.miinideck.com/blog/prompting-ai-forms-rsvp-without-backend-2026): AI builders ship beautiful forms with no idea where the submissions go. Three shapes that actually work — mailto, third-party embed, serverless route — and the prompts that make each one ship cleanly.
- [Sharing a Claude artifact with one person, when the only button says publish (2026)](https://www.miinideck.com/blog/share-a-claude-artifact-with-one-person-not-the-public-2026): Anthropic's docs are explicit: on Free, Pro and Max, publishing makes an artifact publicly available to anyone with the link. Org-only sharing is a Team and Enterprise feature. Here's what that means if you're an individual sending work to one named client.
- [What a view on your shared link really tells you (2026)](https://www.miinideck.com/blog/what-a-view-on-your-shared-link-really-tells-you-2026): A view count is a useful signal and a bad witness. Here's exactly what one view is, what it can't distinguish, and how to read the number without inventing a story it doesn't support.
- [How long does a Cloudflare Drop link last? One hour, and why (2026)](https://www.miinideck.com/blog/cloudflare-drop-vs-a-private-link-2026): Cloudflare's changelog gives it straight: the no-account preview stays live for one hour unless you claim it into an account. That's not a catch, it's the design — and it draws a line worth seeing, because a preview and a delivery are different objects.
- [Your ChatGPT Site is built. Your client isn't in your workspace. (2026)](https://www.miinideck.com/blog/share-a-chatgpt-sites-page-outside-your-workspace-2026): ChatGPT Sites can now invite a named viewer from outside your workspace — but they have to sign in with the account you invited. If your client won't, here's the shape of what's left and the route round it.
- [A short custom link, or an unguessable one — why one link can't be both (2026)](https://www.miinideck.com/blog/custom-short-link-vs-unguessable-url-2026): Everyone wants /pitch instead of a 32-character string. The catch isn't policy, it's arithmetic: a URL short enough to say out loud is short enough to guess. Here's the trade, where the middle ground sits, and why a custom short link only makes sense once you've decided a document should be public anyway.
- [Quarterly business reviews for VC-backed startups (2026)](https://www.miinideck.com/blog/quarterly-business-reviews-vc-backed-startups-html-2026): Board members read the QBR on their phones over the weekend, then re-reference specific sections weeks later when drafting IC memos. The container shapes both halves of that cycle.
- [Which of your Claude shares are public — and what unsharing actually undoes (2026)](https://www.miinideck.com/blog/which-claude-shares-are-public-and-what-unshare-undoes-2026): Sharing a chat creates a snapshot anyone with the link can open. Unsharing disables that link. Neither of those is the same as 'not indexable', and the difference caught a lot of careful people in July 2026. Here's the mechanism, where to check your own shares, and when you need noindex to be a property of the link itself.
- [How to unpublish a Claude artifact — and what it permanently takes with it (2026)](https://www.miinideck.com/blog/claude-artifact-unpublish-cannot-republish-2026): The steps take about ten seconds. The cost is less obvious: unpublishing permanently retires that artifact's ability to be published, and deletes its stored data. Here's how to do it, what it takes with it, and what to reach for when access only needs to end for now.
- [Send the link before the work is finished (2026)](https://www.miinideck.com/blog/send-the-link-before-the-work-is-finished-2026): The normal delivery ritual is finish, then send — and every revision mints a new URL and another 'ignore my last email'. If your AI tool can publish and then update in place, the link can go out first and stay correct. Including when that's a bad idea.
- ["This version can't be shared publicly" — what the error means and how to get the work to your client anyway (2026)](https://www.miinideck.com/blog/this-version-cant-be-shared-publicly-2026): Claude refuses to share your artifact and suggests publishing a new version — which often doesn't clear it. Here's the diagnosis that actually separates the two failures behind that message, and the export route that doesn't depend on the toggle working.
- [User research findings as a private HTML report (2026)](https://www.miinideck.com/blog/user-research-findings-as-private-html-report-2026): UXR deliverables get read on phones by executives and re-read by PMs months later. The HTML report shape handles both — interactive video clips, hover transcripts, NDA-bound delivery — better than the slide deck it usually ships as.
- [A QR code you can update after it's printed (2026)](https://www.miinideck.com/blog/a-qr-code-you-can-update-after-its-printed-2026): Printing a QR code fixes the URL forever. It doesn't have to fix the content. The difference is entirely in what you point the code at — and it's the one decision to get right before the print run.
- [A SCORM package vs a plain web link: what each one is actually for (2026)](https://www.miinideck.com/blog/a-scorm-package-vs-a-plain-web-link-2026): A SCORM package isn't a course you can open — it's a course wrapped for a machine. Here's what that wrapper buys you, what it costs, and when a plain web link is the honest artefact to hand someone.
- [The Genially offline HTML export: what survives, what breaks, and where to put it (2026)](https://www.miinideck.com/blog/genially-offline-html-export-what-survives-2026): Genially's HTML download keeps the interactivity a PDF export throws away — but it lands as a ZIP with an entry file that isn't index.html, and it needs a paid plan. Here's the honest shape of that export.
- [QR code vs a short link: when each one actually fits (2026)](https://www.miinideck.com/blog/qr-code-vs-a-short-link-when-each-fits-2026): They solve the same problem — getting someone from the physical world to a URL — in ways that fail differently. The deciding question isn't which is more modern; it's whether the person can point a camera at it.
- [Sending an e-learning course out for review when the reviewer has no LMS (2026)](https://www.miinideck.com/blog/send-an-elearning-course-for-review-without-an-lms-2026): The course is published. The SME reviewing it has no LMS, no seat in your authoring tool, and no interest in unzipping anything. Here's the delivery shape that fits — and the one thing it deliberately gives up.
- [Sharing an H5P activity without a hosting platform (2026)](https://www.miinideck.com/blog/share-an-h5p-activity-as-a-private-link-2026): Lumi exports H5P content to a single standalone HTML file that runs in any browser. Two caveats decide whether that works for you — some content types won't export at all, and media gets inlined, which inflates the file fast.
- [What your client sees when they open a private HTML link (2026)](https://www.miinideck.com/blog/what-client-sees-opening-private-html-link-2026): The first-time receiver's walkthrough. Six moments from email arrival to tab close — what they see, what they don't see, and why each detail is built that way.
- [Turn a PowerPoint into a shareable link (2026)](https://www.miinideck.com/blog/convert-powerpoint-to-a-shareable-link-2026): You want to send a deck as a link, not a .pptx attachment. For most decks the middle step is now one menu item — PowerPoint exports a PDF, and a PDF goes straight to a private link. When that is the right road, when HTML is, and what each one costs you.
- [Password-protect a static HTML page without a server (2026)](https://www.miinideck.com/blog/password-protect-static-html-without-a-server-2026): Two ways to put a password on a static page without running a backend — client-side encryption you set up yourself, or a hosted gate you don't. What each actually protects, and which fits a page you're handing to one person.
- [Google Drive link vs private link: which one fits what you're sending (2026)](https://www.miinideck.com/blog/private-link-vs-google-drive-link-2026): Sending a client a finished page? A Drive link hands them a file in a filing cabinet to download or preview flattened. A private link hands them the thing itself, already open. The three places the two diverge: rendering, control, and who the link assumes the reader is.
- [A WeTransfer download vs a link that renders (2026)](https://www.miinideck.com/blog/private-link-vs-wetransfer-download-2026): WeTransfer is a courier: it drops the file and leaves, and the link self-destructs. A private link is a room that stays open. Which fits depends on whether you're moving a file or showing a finished page — and on how big it is.
- [Emailing a ZIP vs sending a hosted link (2026)](https://www.miinideck.com/blog/sending-a-zip-vs-a-hosted-link-2026): A ZIP is a moving box: the recipient has to unpack it, find the entry file, and hope their mail provider didn't strip it. A hosted link is the room already set up. When a multi-file build should travel as a link instead of an attachment.
- [Sharing one HTML link with multiple stakeholders — without losing audit trail](https://www.miinideck.com/blog/sharing-html-link-multiple-stakeholders-2026): Private doesn't mean one recipient. Same URL to a five-person review committee, with basic analytics that still tell you who's engaged and who's not.
- [Setting a self-destruct date: which window matches which engagement](https://www.miinideck.com/blog/self-destruct-date-which-window-matches-engagement-2026): Most expiry windows get set by guess — 7 days because that's the default, 'never' because that's reversible. The actual fit comes from matching the window to what the content references.
- [Can you share a Claude artifact that uses connectors? (2026)](https://www.miinideck.com/blog/share-a-claude-artifact-that-uses-connectors-2026): Not to an open link on claude.ai — and even where a public link exists, the live parts only work for signed-in viewers with their own connections. Here's the mechanism behind that, and what to do once you know which page you're actually building.
- [How password protection on an HTML link actually works](https://www.miinideck.com/blog/how-password-protection-on-html-link-actually-works-2026): Two architectures live under the same 'password protected' label. One is a real gate; the other is a UI prompt the receiver can click past in 30 seconds with DevTools open.
- [Light-weight AI-generated pages: prompts and post-edits for fewer kilobytes (2026)](https://www.miinideck.com/blog/lightweight-ai-pages-prompts-post-edits-fewer-kilobytes-2026): AI builders default to heavy: full framework bundles, web fonts, icon libraries, generous markup. Prompts that ship lean from the start, plus the trim pass for what slipped through.
- [Reading the access log: what 'someone viewed your link' actually tells you](https://www.miinideck.com/blog/reading-private-link-access-log-2026): The view count is the headline. The actual signal lives in the pattern — re-opens, time gaps, distinct devices. What each shape usually means in context.
- [White-label expiry: what your client sees after the link goes down (Studio)](https://www.miinideck.com/blog/white-label-expiry-page-studio-2026): The default expired-link page is generic and reads as the host's brand. Studio plans let the page read as the studio's own — what changes, when it matters.
- [Searchable + private: when one document should be both (2026)](https://www.miinideck.com/blog/searchable-and-private-when-one-document-should-be-both-2026): Private-link hosts default to noindex; that's the product. The exception — a portfolio page, a public case study, a launch microsite — fits as per-document opt-in, not as a different account.
- [PageDrop vs miinideck: is the link disposable, or does it need to last? (2026)](https://www.miinideck.com/blog/miinideck-vs-pagedrop-when-each-fits-2026): PageDrop vs miinideck, compared by design: one was built for links that expire on purpose, the other for links that need to last. What each was for, where they genuinely overlap, and where the disposable-page job goes now that PageDrop is winding down.
- [Portfolio / about / CV on your own URL — without Webflow (2026)](https://www.miinideck.com/blog/portfolio-cv-on-your-own-url-without-webflow-2026): A personal site updates twice a year. CMS subscriptions and full deploy pipelines are sized for sites that update twice a week. The middle ground: one HTML file at your own domain.
- [Event microsites that disappear after the event (2026)](https://www.miinideck.com/blog/event-microsites-that-disappear-after-event-2026): Wedding RSVPs, conference landing pages, launch event sites — built for a window, awkward to leave online afterward. Channel options for a microsite that retires cleanly.
- [AI builders: sharing mid-prompt prototypes during iteration (2026)](https://www.miinideck.com/blog/ai-builders-sharing-mid-prompt-prototypes-iteration-2026): The iteration loop with Claude / Cursor / Lovable produces a new version every round. Channels that let each round travel cleanly — without exposing the chat, the previous version, or the next reviewer to noise.
- [How to inline all CSS and JavaScript in an HTML file (2026)](https://www.miinideck.com/blog/inline-css-javascript-in-html-file-2026): Three paths to turn a multi-asset HTML page into a single self-contained file: a build-tool step, an LLM prompt, or a manual pass with DevTools. When each one fits.
- [How to collect pinned feedback on a shared HTML page — and send it back to your AI (2026)](https://www.miinideck.com/blog/collect-pinned-feedback-on-shared-html-send-back-to-ai-2026): A step-by-step: turn on Review for a private link, let anyone pin comments to the exact spot (no account), then export the thread as a prompt to paste into Claude or Codex.
- [Hosting was never the job: closing the feedback loop on AI-built pages (2026)](https://www.miinideck.com/blog/get-feedback-on-ai-built-pages-and-send-it-back-to-your-ai-2026): You shared the AI-built page — then what? The real work is the loop: build, show, react, fold the reaction back into the next prompt. Why hosting is only step one, and what actually closes the loop.
- [Why your AI share link won't open for them (2026)](https://www.miinideck.com/blog/why-your-ai-share-link-wont-open-for-them-2026): "It asks me to log in." "It's blank." The link isn't broken — it was never built to leave the tool. What each AI tool actually hands you, and what opens.
- [Custom domain for private client links: setup walkthrough (2026)](https://www.miinideck.com/blog/custom-domain-private-client-links-setup-walkthrough-2026): Pointing a subdomain at a private-link host so the URL says your brand, not the vendor's. Steps, DNS gotchas, and when the apex vs subdomain choice matters.
- [Investor pitch decks as HTML links (2026)](https://www.miinideck.com/blog/investor-pitch-decks-as-html-links-2026): VC partners read the deck on a phone, forward it to two more partners, re-open it three weeks later. The container choice decides what that cycle feels like.
- [miinideck vs Netlify Drop: when each fits (2026)](https://www.miinideck.com/blog/miinideck-vs-netlify-drop-when-each-fits-2026): Two tools that both turn a dragged file into a URL. One is designed for public deploy testing; the other for private one-recipient delivery. When each fits, where the overlap is real.
- [miinideck vs Vercel Drop: when each fits (2026)](https://www.miinideck.com/blog/miinideck-vs-vercel-drop-when-each-fits-2026): Vercel Drop turns a dragged file into a live production URL on a major platform. miinideck turns one into a private link for specific people. Both fit 'drag a file, get a URL' — and were built for opposite jobs. When each fits, where the overlap is narrow.
- [Vercel Drop launched — and it means your work can be a link, not an attachment](https://www.miinideck.com/blog/vercel-drop-launch-deliver-your-work-as-a-link-2026): Vercel just shipped drag-a-file-get-a-link. With Netlify, tiiny, and others already here, sharing a built page as a live link is officially the new normal. Here's the whole landscape of tools — and how to pick one — if you're done emailing PDFs.
- [AI product landings: from prompt-built page to public URL (2026)](https://www.miinideck.com/blog/ai-product-landings-from-prompt-built-to-public-url-2026): 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.
- [Prompt patterns to ship portable, self-contained HTML from any AI tool (2026)](https://www.miinideck.com/blog/prompts-portable-self-contained-html-from-any-ai-tool-2026): AI tools default to modular HTML — clean for development, fragile for one-file delivery. Cross-tool prompt templates that produce a single portable file from the first generation.
- [When 7-day self-destruct is the wrong default (and when it's perfect)](https://www.miinideck.com/blog/when-7-day-self-destruct-is-wrong-default-2026): A short-lived link reads as a feature for one-off reviews and a bug for permanent references. The shape of the engagement decides which one the file needs.
- [Animation prompts that level up Claude / Lovable / Cursor-built sites (2026)](https://www.miinideck.com/blog/animation-prompts-claude-lovable-cursor-built-sites-2026): AI-built pages default to clean, static, and slightly bland. Four animation patterns and the cross-tool prompt templates that bring them in — without dragging in a heavy library.
- [Making a Claude artifact self-contained: the export checklist (2026)](https://www.miinideck.com/blog/claude-artifact-self-contained-export-checklist-2026): A Claude artifact looks self-contained inside the chat and often isn't. The five things that quietly stay external — CDN scripts, Tailwind, fonts, images, fetch calls — and how to inline each.
- [Best free way to host a single HTML file (2026): every option compared](https://www.miinideck.com/blog/best-free-html-hosting-single-file-2026): Twelve ways to put a single HTML file online, most of them free — GitHub Pages, Netlify, Cloudflare, Vercel, Tiiny, Neocities, Static.app, EdgeOne, host-html, Linkyhost, Wasmer, and a private-link option — with an honest table of which fits which job, public or private.
- [How many tokens does an image (or a PDF) cost an LLM? (2026)](https://www.miinideck.com/blog/how-many-tokens-image-pdf-llm-2026): There is no single number — it depends on the model, the image size, and whether you send a PDF as text or pixels. The per-model formulas, real measured costs, and how to count it for your own model.
- [Markdown vs HTML vs PDF: which format for what (2026)](https://www.miinideck.com/blog/markdown-vs-html-vs-pdf-which-format-for-what-2026): Three formats people reach for by habit, built for three different jobs. A job-by-job map of when Markdown, HTML, or PDF is the right shape — and why they work best as a pipeline, not a choice.
- [PDF vs Markdown for AI: which saves tokens, which reads cleaner (2026)](https://www.miinideck.com/blog/pdf-vs-markdown-for-ai-tokens-2026): Feeding a document to an AI? Markdown almost always costs fewer tokens and parses cleaner than the same content as a PDF. Where each format wins — and why the thing you hand a person at the end is neither.
- [Why HTML beats PDF for deliverables in 2026: interactivity, weight, and no stale copies in everyone's Downloads](https://www.miinideck.com/blog/why-html-beats-pdf-for-deliverables-2026): PDF is built for archive and print. HTML is built for live, browser-native delivery. Where the three differences — interactivity, weight, single source of truth — actually decide which format ships.
- [Freelancers: pricing proposals as HTML, not PDF (2026)](https://www.miinideck.com/blog/freelancers-send-html-pricing-proposals-not-pdf): A pricing proposal is read more like a website than a document. Channel options for sending one, and where private-link HTML sits between a PDF attachment and an esignature tool.
- [Designers: sending client previews without leaking Figma frames (2026)](https://www.miinideck.com/blog/designers-share-figma-client-preview-without-leaking-frames): Figma is designed for collaboration, so the share link shows comments, version history, and the frames you parked. Channel options for a client-facing preview, and where private-link hosting fits.
- [Why senior teams send HTML, not .pptx (2026)](https://www.miinideck.com/blog/senior-teams-send-html-not-pptx): The format you pick for an internal review is a category-signaling choice. When the team starts shipping HTML links instead of .pptx attachments, the room reads it before the content opens.
- [How to privately share a Claude or ChatGPT artifact with a client (2026)](https://www.miinideck.com/blog/share-claude-or-chatgpt-artifact-privately): 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.
- [A consultant's guide to sending interactive dashboards (2026)](https://www.miinideck.com/blog/consultants-guide-interactive-dashboards): Interactive dashboards lose their interactivity in PDF, screenshot, and screen recording. The trade-off, and where private-link hosting fits between handoff and full deployment.
- [How agencies preview client work without exposing the WIP (2026)](https://www.miinideck.com/blog/agencies-preview-client-work-without-exposing-wip): Five channels agencies use for client previews — and what each accidentally reveals about the work in progress. Where private-link delivery sits, and when it's worth the swap.
- [miinideck vs tiiny.host: when each fits (2026)](https://www.miinideck.com/blog/miinideck-vs-tiiny-host-when-each-fits): Two tools that both host an HTML file, designed for different jobs. When tiiny.host fits, when miinideck fits, and where the choice actually matters.
- [Sharing an HTML report with a client: tools compared (2026)](https://www.miinideck.com/blog/share-html-report-with-client): How analysts, consultants, and agency teams hand a finished HTML report to one named client — what each channel is built for, and where private-link hosting fits.
## Legal
- [Privacy](https://www.miinideck.com/privacy): Default-noindex policy, data retention, and abuse handling.
- [Terms](https://www.miinideck.com/terms): Acceptable use, payment, and account terms.