Admin workflow
The admin is a dense operator panel at /admin. Create links from distributor or
streaming URLs, publish to a slug, and read per-link analytics.
Onboarding wizard
First visit /admin/onboarding. The wizard checks Cloudflare bindings, secrets,
database migrations, admin auth, and optional pixel test — and generates wrangler snippets
for anything missing.
Create a link
- Open
/adminand create a new link. - Paste a TooLost, Spotify, or Apple Music URL (or enter ISRC manually).
- Fill missing title, artist, or ISRC if the provider does not expose them.
- Add platform destinations (Spotify, Apple, YouTube, SoundCloud, Bandcamp, Deezer, Tidal, Amazon, other).
- Publish. The fan page goes live at
/:slug.
Pre-release vs live
Links can run in the stored presave mode before release date and present it to operators as pre-release, then switch to
live automatically when the release date passes. Campaigns keep the same URL.
Import sources
| Source | What you get |
|---|---|
| TooLost | Metadata + ISRC when available |
| Spotify (API) | Title, artist, artwork, ISRC, embed palette |
| Spotify (oEmbed fallback) | Title and artwork only |
| Apple Music | Metadata + artwork |
| Odesli backfill | Cross-platform destination URLs |
Public fan page
- Artwork-derived color palette (no Linkbeam branding on fan pages)
- Platform CTAs as real anchor links (works without JS)
- Countdown for pre-release pages
- Embed mode: append
?embed=1for iframe demos
Analytics
Each link has an analytics view with views, clicks, CTR, platform breakdown, geo, referrer, funnel, and hourly heatmaps. Numbers exclude bot traffic. Meta campaign insights appear when credentials are configured.
Admin auth
Production /admin requires one of:
- Cloudflare Access — JWT validated via team domain + audience secrets
- Password session — bcrypt hash + signed session cookie
Local dev and localhost bypass auth for faster iteration.