Deploying
Everything between “the AI built it” and “🎉 Live!” - where the button is, what you can feed pushd, how names work, and what comes back.
The Push button
pushd adds a ↑ Push button wherever it finds a deployable page:
- Claude (claude.ai): on the artifact panel’s toolbar (next to Copy), and on the artifact card in the chat (next to Download). HTML artifacts only - a Python script won’t get a button.
- ChatGPT (chatgpt.com): on HTML code blocks, in the sticky header next to Copy, and in the expanded code editor dialog.
- Gemini (gemini.google.com): on HTML code blocks next to Copy, and in the Canvas toolbar beside the Code/Preview tabs - works from either tab.
- Grok (grok.com): on HTML code blocks beside Preview, and in the preview panel next to Close.
- More coming soon
Click it and the pushd popup opens with your page loaded and a site name already suggested from the page’s title.
If the button shows ⚠ No HTML, ⚠ Failed or ⟳ Refresh page instead, see Troubleshooting - all three have quick fixes.
Other AI tools (DeepSeek and friends) don’t get a button yet - they’re on the roadmap. Pages from anywhere still deploy fine via the drop zone below.
The drop zone (no AI chat required)
Open the popup directly and the deploy screen accepts:
- a single HTML file
- a ZIP
- multiple files or a whole folder
- pasted HTML, straight from the clipboard
Multi-file sites need an index.html - that becomes your homepage. (A lone HTML file with any name is promoted to index.html automatically.) System junk like .DS_Store and Thumbs.db is stripped for you.
Site names and URLs
The site name field is your site’s identity. It’s pre-filled from the artifact or page title. The name becomes your URL slug, adapted to each provider’s rules automatically (lowercase, hyphens, provider-specific length limits):
| Provider | Your URL |
|---|---|
| Netlify | your-site.netlify.app |
| Vercel | your-site.vercel.app |
| Cloudflare | your-site.your-subdomain.workers.dev |
| GitHub Pages | your-username.github.io/your-site/ |
| Tiiny.host | your-site.tiiny.site |
| cPanel | yourdomain.com/your-site/ |
The rule that matters: same name = update the existing site, same URL. New name = new site, new URL. The deploy button tells you which is about to happen - “Update site on Netlify” with a “Same link as last time” hint, vs “Deploy site to Netlify”. (More on updating.)
Overwrite checkbox: on providers that support it (Netlify, GitHub Pages), an “Overwrite if this name already exists” option appears - it lets you deploy into a same-named site pushd didn’t create. Off by default so you can’t clobber something by accident.
Before you hit Deploy
The deploy screen also carries three optional panels, each with its own page:
- Search & social - page title, description, social preview, favicon: SEO & sharing
- Password - lock the page before it leaves your browser (Pro): Password protection
- Optimize - minify and compress before upload (Pro): Optimization
Plus a preview button that opens your page in a pop-out with device frames, so you can sanity-check on difference device sizes before it’s public.
What happens when you deploy
You get a live step checklist per provider (e.g. GitHub: “Creating your site’s repo → Uploading → Turning on GitHub Pages → Publishing”). First deploys can take a minute or two; updates are usually much faster.
Then: 🎉 Live! with
- your URL - copy it or open it
- a QR code, generated locally, downloadable as PNG
- share links for WhatsApp, X, LinkedIn and email, plus a Markdown-formatted link for READMEs and forums
Every deploy also lands in your history, with one-click redeploy.