1 · Copy this snippet
Replace sona with your Gish handle. Place the tag where you want the wishlist to appear.
<script src="https://gishme.com/widget/wishlist-embed.js"
data-handle="sona"
data-limit="5"
async></script>
2 · Live preview
Renders the widget for handle sona:
3 · How it works
- The widget fetches
GET /v1/public/widget/wishlist/<handle>.jsonon api.gishme.com. - Only public wishes are returned — private and shared wishes never appear.
- Markup lives inside a closed shadow root, so host-page CSS can't break it and host-page JS can't read it.
- The widget lazy-loads near the viewport (IntersectionObserver) to keep your page fast.
- No cookies, no analytics, no third-party fonts. CSP-friendly.
4 · Options
| Attribute | Default | Notes |
|---|---|---|
data-handle | — (required) | Your Gish handle, without the @. |
data-limit | 5 | Top N public wishes to show (1–20). |
data-api | api.gishme.com | For staging/dev only. |
5 · One-line embed via API
If your host (e.g. some Ideal.Bio plans) doesn't allow inline attributes on script tags, point straight at the JS bootstrap on the API:
<script src="https://api.gishme.com/v1/public/widget/wishlist/sona.js?limit=5" async></script>
The endpoint returns a tiny self-contained loader that injects the real widget script.
Gish and Ideal.Bio are independent companies. This widget is a cross-promotion partnership — no shared accounts, no SSO. Your Gish data stays at Gish.