Cairn

@tomymaritano | Product | 2026 · 1 minOnboarding as a state machine, not a tooltip list.

Problem#

Tours are a linear list of tooltips. Real onboarding branches, spans pages, and needs an event stream you can send. Libraries bolt that on after the fact.

What I built#

A state-machine workflow engine. Framework-agnostic core; React is the first binding. You own the UI. Cairn owns the path, persistence, and events.

One hard decision#

The engine is not the renderer. A tooltip library dies when the DOM changes. A state machine survives navigation. next is a function of live context — an index is not a path.

Docs and demo live at react-cairn.vercel.app.

CairnOnboarding as a state machine, not a tooltip list.