Drop-in embed · v1
A Loom video bubble for any Lovable site.
One <script> tag. Configure below, copy, paste into any other site — a dismissible founder intro pops up on a timer or scroll depth.
Configure
Your embed snippet
<script async
src="https://your-site.lovable.app/loom-bubble.js"
data-loom-url="https://www.loom.com/share/e883f30b52e243a8b1113b7fe10f5b93"
data-trigger="timer"
data-delay="5000"
data-scroll="75"
data-position="bottom-right"
data-title="A quick hello 👋"
></script>The
src uses this project's current origin. Publish this project so the URL is public, then the snippet works on any site.Install on another Lovable site
- 1. Publish this project. The script has to load from a public URL — preview URLs are login-gated and won't work on third-party sites.
- 2. Paste the snippet into the target project. In TanStack Start projects, add it to
src/routes/__root.tsxinside thehead()return under ascriptsarray:head: () => ({ scripts: [ { src: "https://your-site.lovable.app/loom-bubble.js", async: true, "data-loom-url": "https://www.loom.com/share/e883f30b52e243a8b1113b7fe10f5b93", "data-trigger": "timer", "data-delay": "5000", "data-position": "bottom-right", "data-title": "A quick hello 👋", }, ], })For plain HTML sites, just paste the<script>tag into<head>or before</body>. - 3. Reload the target site. The bubble appears per your trigger config. Visitors can dismiss it; it stays hidden for the configured duration.
What you get
- • Shadow-DOM isolated — host-site CSS can't break it.
- • Timer or scroll-depth trigger (whichever fires first).
- • Autoplays muted via Loom's native player — unmute in one click.
- • Dismiss button, Esc to close, remembers for a session or N days.
- • Responsive on mobile, respects
prefers-reduced-motion. - • No analytics, no cookies unless you set
data-cookie-days. Loom handles video analytics.