Skip to main content
Every demo you host has a shareable URL, and you can embed a demo or hub into another site without writing custom glue code. Each hosted demo lives at a public URL on your hub, and CLI-published snapshots get their own standalone link at /p/<id>. Send either link directly, or use it as the source for an embed. See Hosting and publishing for how hosted URLs are structured.
A /p/<id> snapshot is a frozen copy of a single demo with no hub around it. The unguessable id in the URL is the access control, and snapshot pages are not indexed by search engines.

Open embed options

Open Share from a published demo to copy embed snippets. There are two presentations:
  • Inline embed — drop an <iframe> straight into the page. The hub and any demo opened inside it render inline with no player chrome.
  • Popup embed — add a small loader script and a trigger button. Clicking the button opens the hub in a near-full-screen modal.

Inline snippet

The settings panel builds a snippet like this, with the width and height you choose:
<iframe
  src="https://your-inkly-host/hub/<your-hub-slug>?embed=inline"
  width="100%"
  height="800"
  frameborder="0"
  allow="clipboard-read; clipboard-write; fullscreen"
  allowfullscreen
></iframe>
Use the generated snippet when possible. It keeps the embed mode and sizing options in sync with the platform. The popup uses a shared loader plus a trigger button. The loader installs Inkly.open():
<script>window.Inkly=window.Inkly||{q:[],open:function(){(this.q=this.q||[]).push(arguments)}};</script>
<script src="https://your-inkly-host/embed-v1.js" async></script>
<button onclick="Inkly.open('https://your-inkly-host/hub/<your-hub-slug>')">
  View demos
</button>
The settings panel can generate the trigger button for plain HTML, React, Next.js, Vue, and Svelte, and you can set the button label.
Inline embeds can resize to fit the demo’s aspect ratio. In chrome-free inline mode, share and fullscreen controls are hidden, and the “Built with Inkly” attribution badge stays visible.