Four ways to prove BatonPass isn't animation.
The marketing surface sells the idea. The demo surface proves the backend is real. Every page below runs against the live FastAPI service — copy any handoff_id into curl and you get the same record.
Live handoff
Three-screen synchronized demo theatre. Real ULIDs. SSE driving the 13-state lifecycle ladder. QR code scannable from your phone.
Run /demo/live →
Interruption playground
Pick CAPTCHA / 2FA / Cookie / Approval / Checkout / Unknown modal. Tweak the timeout. Re-run with that config. URL params persist your choice.
Open playground →
Audit stream
Public read-only SSE feed for the demo tenant. Every event you generate persists — refresh to prove it.
Watch the feed →
Replay any handoff
Scrub the timeline through all 13 lifecycle states. Permalink shareable. Built on real audit events.
Open a replay →
Direct-link into /demo/playground?type=…:
Real ULIDs
Every handoff_id is h_<ULID> minted by the backend. Paste into curl to verify.
Live SSE
Lifecycle ladder reads /api/v1/handoffs/{id}/events. Open DevTools to see the stream.
Trace panel
Beneath the demo, every HTTP call expandable to JSON.
QR-to-phone
Scan with your own phone — the PWA opens the real signed URL.