Live demo
Try the first-run setup checklist
This is the real
@bootstrapware/onboard package with createLocalAdapter. Switch persona and scenario to see eligibility, blocked copy, failed persist, and fact reconciliation. Data stays in localStorage in this browser.Local mode is free forever and does not call Bootstrapware. When you are ready for published config, follow the quickstart or hand this brief to your coding agent.
Local adapter · progress stays in this browser
Persona:
Scenario:
First-run setup
onEvent log
No onEvent calls yet.
- Blocked steps show "Complete {title} first."
- Next-step href CTA: first incomplete unblocked item is highlighted. Go to billing is primary; Mark complete is secondary. Invite stays blocked until billing is complete. The hash link does not auto-complete.
- Optional steps can be skipped. Dismiss hides the widget without 100% progress.
- Snooze hides without stealing focus from the page. Resume from the hidden message.
- Failed persist: try Mark complete on Invite a teammate in the failed-persist scenario.
- Facts: toggling hasBilling completes that step. "n/a" on ssoEnabled hides the optional SSO row (false does not).
- Copy-only: complete the step, then bump revision — no second onboard.flow_completed.
- Add required: complete the first step, then add a key — setup reopens.
Dark host
Same checklist with theme="dark" on a dark page. The light demo above stays the default. Omit theme and the checklist stays the light cream default.
Dark host · theme=dark · progress stays in this browser
Persona:
Scenario:
First-run setup
onEvent log
No onEvent calls yet.
- Blocked steps show "Complete {title} first."
- Next-step href CTA: first incomplete unblocked item is highlighted. Go to billing is primary; Mark complete is secondary. Invite stays blocked until billing is complete. The hash link does not auto-complete.
- Optional steps can be skipped. Dismiss hides the widget without 100% progress.
- Snooze hides without stealing focus from the page. Resume from the hidden message.
- Failed persist: try Mark complete on Invite a teammate in the failed-persist scenario.
- Facts: toggling hasBilling completes that step. "n/a" on ssoEnabled hides the optional SSO row (false does not).
- Copy-only: complete the step, then bump revision — no second onboard.flow_completed.
- Add required: complete the first step, then add a key — setup reopens.