Plain HTML embed test

Below: a <MissionList> widget injected into a Shadow DOM by /questkit.iife.js. The script reads data-questkit-* attributes off its own <script> tag at boot, then scans the document for [data-questkit] elements and mounts each one.

Static testbed. The <meta name="questkit-token"> tag above is intentionally a placeholder (REPLACE_WITH_MINTED_JWT). The playground is a static-asset Worker for verifying that the IIFE bundle mounts widgets correctly in real host-page contexts — it does not mint tokens itself. To exercise live API calls, mint a JWT via POST /v1/auth/token on the api worker (see the README) and paste it into this meta tag locally.

MissionList


CoinBalance

Both widgets above are isolated by Shadow DOM — host page CSS (the style.css loaded for this page) cannot reach inside their roots. See /wordpress.html for the same widgets embedded inside an intentionally hostile WordPress-themed layout.