Add the script before the closing body tag
<script
src="https://getdemoloop.com/widget.js"
data-key="dl_your_surface_key"
async
></script>Replace the example with the publishable key shown in Settings.
Add every production hostname to Allowed domains.
Load the script once per page.
Test on the exact hostname visitors will use.
Hosted script attributes
data-keyRequired publishable surface key.
data-labelOptional launcher-button label.
data-positionleft or right.
data-modemodal or popup.
data-originCustom Demoloop origin for controlled development environments.
Domain validated
The configuration API checks the page hostname against the surface allow-list.
Publishable key
The browser key identifies configuration; private provider credentials remain server-side.
Programmable later
Move to the npm package when the demo needs signed-in context, events, or safe host actions.
Before publishing
Open the production page, confirm the launcher appears, start a demo, and verify that the session reaches Visitors. If the launcher does not load, use the domain checks in Troubleshooting.
Troubleshoot the widget