Deploy from AI canvas
One click inside ChatGPT, Claude, Gemini, v0, or AI Studio. Browser extension does the upload.
The VibeHost Chrome extension adds a Deploy button inside the major AI canvas environments. You click it; the extension reads the code from the canvas, packages it, uploads to VibeHost, and returns a URL.
No CLI, no terminal, no file save step.
Install
VibeHost extension on the Chrome Web Store.
After installing, click the extension icon and sign in to VibeHost (uses the same Google / email login as vibehost.com).
Supported canvases
| Platform | Surface | What gets deployed |
|---|---|---|
| ChatGPT Canvas | Code artifact in canvas pane | HTML / CSS / JS files |
| Claude Artifacts | Side-panel artifact | HTML / single-file React |
| Gemini Canvas | Generated HTML app | Single-file HTML |
| Google AI Studio | /apps/<uuid> + /apps/drive/<id> | Multi-file React / TSX |
| v0 | Live preview | Static preview output (not server routes) |
Use it
- Have your AI canvas open with a code artifact rendering.
- Click the Deploy to VibeHost button. It appears in the canvas toolbar of supported platforms.
- The extension extracts the source, packages it, uploads. ~5 seconds.
- A toast shows the URL. Click to open, or copy to share.
What you see in the canvas preview is what gets deployed. Interactive elements (buttons, animations, hover effects, responsive layout) work. Anything that hits a localhost / 127.0.0.1 API won't work — there's no server.
Per-platform notes
Works on ChatGPT Plus / Team / Enterprise (any plan that can open Canvas).
Button appears when a code-bearing canvas is open. The extension reads the rendered code from the canvas, not from the conversation transcript — so the deploy reflects exactly what's visible.
Doesn't work on: plain chat (no canvas), conversations with Python code (python_user_visible tool calls).
Works in Claude.ai and the Claude Desktop browser. Supports both the artifact side-panel and inline <artifact> blocks in the chat.
The extension extracts from artifact props first, falls back to code blocks if needed. For single-file React artifacts, the extension wraps them with a minimal index.html runner.
Works on Gemini Canvas (the "build an app" feature). The button appears in the canvas toolbar.
Single-file HTML / CSS / JS only. Gemini's multi-file projects aren't currently supported — those land on AI Studio.
Works on both /apps/<uuid> (AI-generated) and /apps/drive/<id> (Drive-shared). Drive apps can have multiple files (index.tsx, App.tsx, components/*); the extension reads them all.
The extension auto-detects the entry point and bundles minimally.
Works on the preview iframe. v0 sometimes generates full app projects with server-side code — the extension deploys only the static preview output, so API routes and server actions won't run.
"Capture & deploy" — any web page
Beyond canvases, the extension's popup has a "Capture & deploy" button that works on any URL. It snapshots the page DOM + assets as a static HTML bundle and deploys it.
Useful for:
- Archiving a reference page before it changes.
- Sharing a snapshot of a public page that requires a login.
- Capturing a 3rd-party demo for an internal review.
It's a snapshot — the captured site won't auto-refresh when the source changes. Re-run capture to update.
What gets deployed (and what doesn't)
✓ Works:
- HTML, CSS, vanilla JS
- React components compiled to a runnable bundle
- Tailwind / inline styles
- Static images bundled or referenced via CDN
- Client-only routing (
react-router, hash links) - Fonts loaded via
<link>
✗ Doesn't work:
- Server-side code (any kind)
- API calls to localhost / 127.0.0.1
- File-system reads at runtime
- WebSockets to local servers
- Python (the canvas might generate it, but VibeHost can't run it)
Where the deploy lands
The extension creates apps in your active VibeHost workspace. App name is derived from the canvas title (or you can override in the dashboard later).
Apps from the extension default to private. Open the dashboard to change visibility:
- Make public: anyone with URL can view.
- Invite an email: Google sign-in gate.
- Share link: time-bound public-ish access.
Iterate
Make a change in the canvas. Click Deploy again. The extension updates the same app (matched by canvas conversation). Same URL, new content.
If you want a new app instead, rename in the canvas first or use the popup's "Deploy as new app" option.
Why this matters
The "I can build it but I can't ship it" problem is mostly a tooling problem. Deploying a static HTML file involves: pick a platform, sign up, configure DNS, configure SSL, configure build, push to git, wait. Most of that is unnecessary for a one-file site.
The extension collapses that to one click + 5 seconds. The deployed URL is permanent, free, and shareable.
See also
- Chrome extension — install, permissions, troubleshooting
- Static sites — what's actually being served
- Quickstart — the CLI equivalent for files you have locally
- Grants and visibility — controlling who can see canvas deploys