shipslides
← Back to blog

How to Share a Gemini Canvas App as an Embeddable Link

Google Gemini Canvas is quietly one of the best AI tools for building small interactive things. Ask it for a pricing calculator, a quiz, a data dashboard, or a slide deck, and it renders a working interactive HTML app right beside the chat — CSS, JavaScript, and markup all live in one preview you can iterate on. The problem shows up the moment the app is done: how do you actually share a Gemini Canvas app with someone who is not sitting inside your Gemini session?

Gemini has a native answer, and it is worth understanding why it falls short for real publishing. This post covers the honest limits of the built-in share link, then walks through exporting the HTML and hosting it on Shipslides for a clean, sandboxed, embeddable public link.

Why the built-in g.co/gemini/share link is not enough

Inside Canvas you will find a Share & export option that produces a g.co/gemini/share URL. It is genuinely useful for a quick look, but it is not a published page. A few things to know before you rely on it:

  • It opens your creation back inside the Gemini interface, not on a standalone page. Viewers can view and keep editing the underlying code.
  • It reflects a frozen snapshot of the moment you shared, so it can drift out of sync with the version you keep working on.
  • Google surfaces data-sharing warnings, because the surrounding conversation context can travel with the link.
  • There is no branding and no embed. You cannot drop it into a landing page as a clean iframe or hand it to a customer as your own page.

If your goal is a real, standalone, brandable URL that just shows the app — the kind of thing you would put in a portfolio, a doc, or a marketing page — you want to host the Gemini Canvas HTML yourself. Here is the short path.

Step 1: Get the full HTML out of Gemini Canvas

You need the complete source of the app as one file. Canvas exposes a code view you can copy from, and it can also export the code directly. The most reliable way to get a file that will run anywhere is simply to ask Gemini for it in plain terms:

Output this whole app as a single self-contained HTML file.
Inline all CSS and JavaScript in the one file. Do not reference
any external stylesheets, scripts, fonts, or CDNs, and do not make
any network calls at runtime. It must run offline from one .html file.

Copy the result into a text editor and save it as app.html(or use Canvas's own code export if you prefer). Open the file locally in your browser and confirm it works on its own — if it renders and the interactions respond with no internet-dependent pieces, it is ready to upload.

Step 2: Upload the file to Shipslides

With your single HTML file in hand, publishing is one step:

  1. Open the Shipslides upload page.
  2. Drag your app.html onto the drop zone.
  3. Give it a title, and upload.

Shipslides processes the file and publishes it in seconds. There is no repo to push, no build to wait on, and no static host to configure.

Step 3: Get your public link and embed

You get back a clean short URL at /d/<slug> plus a ready-to-paste iframe embed snippet. The link is a real standalone page that shows only your app — no Gemini chrome, no edit mode, no conversation context riding along.

Crucially, this is safe by default. Any JavaScript in a generated app is untrusted code, so Shipslides serves every upload inside a strict iframe sandbox with locked-down permissions and blocked runtime network access. Interactive elements that run entirely in the browser keep working, but the app cannot phone home, read cookies from your site, or load third-party trackers. That is exactly what makes it comfortable to embed an AI-generated app on a page you care about.

If you build with other AI tools too, the same flow applies. See our guides on sharing a ChatGPT Canvas app, hosting Claude Artifact presentations, and publishing any AI-generated HTML.

The takeaway: the fastest way to share a Gemini Canvas app as a proper page is to export the self-contained HTML and drop it on Shipslides. Build the file, upload it, send the link — a clean public URL and an embed, no infrastructure required.

Frequently asked questions

What is the g.co/gemini/share link and why not just use it?

When you use Share & export inside Gemini Canvas you get a g.co/gemini/share URL. It is convenient, but it is not really a published page — it opens your creation back inside the Gemini interface, where viewers can view and keep editing the code, it reflects a frozen snapshot rather than a page you control, and Google shows data-sharing warnings because the conversation context can travel with it. That is fine for a quick review with a colleague, but it is not a clean, standalone, brandable page you would put on a landing page or send to a customer. Hosting the exported HTML on Shipslides gives you a real public URL that just shows the app.

Do interactive elements keep working?

Yes, as long as the app is self-contained. Buttons, sliders, canvas drawing, local state, animations, and any JavaScript that runs entirely in the browser behave exactly as they did in Gemini Canvas, because that logic is baked into the single HTML file. The one limit is runtime network access — external fetch or XHR calls are blocked in the sandbox for security — so an app that calls a live API mid-session will not reach it. Bake the data into the file instead, or keep the app self-contained.

Can I embed the app on my website?

Yes. Every deck you upload gets both a shareable link and a ready-made iframe embed snippet you can paste into your blog, docs, portfolio, or landing page. The embed is sandboxed the same way the standalone link is, so untrusted JavaScript from a generated app cannot touch the rest of your site.

Is it free?

Yes. Uploading a single self-contained HTML file, getting a public link, and grabbing the embed snippet are all free on Shipslides. There is no build pipeline to configure and no static host to pay for.

Have a Gemini Canvas app ready?

Export the self-contained HTML and get a free, sandboxed, shareable link and embed.

Upload to Shipslides