Launch bundles — launcher
The launcher page
/l/[slug] is where a Linky opens. It resolves the tab set, renders the Open All button, and nudges the viewer when identity would unlock a different bundle.
What the viewer gets
When you attach a policy, every click is evaluated against the viewer's identity (see Identity) and the first matching rule's tabs are served. stopOnMatch: false lets later rules append more tabs.
If no rule matches — whether the viewer is anonymous or signed-in — they get the public tab set. That makes a Linky with a policy safe to paste in a public channel: the personalized tabs only surface for the viewers you targeted.
Open All + popup fallback
Open All calls window.open() once per tab in a synchronous loop triggered by the click event — most browsers honor it. If the browser blocks the batch, the launcher renders a manual list with each URL as an explicit anchor so the viewer can click through one at a time.
Personalized banner
When a rule matches and has showBadge: true, the launcher renders the rule's nameas a small banner so the viewer understands which bundle they're seeing. Rules with showBadge: false (the default) stay invisible — the viewer sees only their tab set.
The policy itself never leaves the server. The viewer's browser only ever sees the tab list they resolved to — and, whenshowBadge is on, the name of the matched rule.
Anonymous sign-in nudge
When a Linky has a policy and the viewer is anonymous, the launcher surfaces a small prompt to sign in — personalized tabs may be waiting. The prompt never blocks: the public tab set still renders and Open All still works. Signing in triggers a re-resolve.
Not found / deleted
Unknown slugs return 404. Deleted Linkies also return 404 — the launcher treats them as gone. The version history is retained, so an owner can still inspect what the bundle used to contain.