Flows and boilerplates
Multi-step flows ship a controller so you wire one component. Boilerplates are the scaffolds under everything else.
Three content types
| Type | What it is | How it arrives |
|---|---|---|
| Screen | One self-contained screen, one file plus the odd helper. | Copy prompt |
| Flow | An ordered set of screens with a controller, such as a 4-step onboarding. | Copy prompt |
| Boilerplate | A complete, runnable Expo app. Not published yet. | One CLI command |
Flows ship their own controller
A flow is not four loose screens for you to sequence. It ships an index.tsx that owns the step index, the answers and the transition between steps, so you wire one component into navigation rather than four.
- initialStep opens the flow part-way through, for deep links and resumed sessions.
- onComplete fires after the last step, with whatever the flow collected.
import AuroraOnboarding from './components/aurora-onboarding'
<AuroraOnboarding
onComplete={answers => {
saveOnboarding(answers)
router.replace('/home')
}}
/>Boilerplates are the scaffolds under everything else
The twelve published boilerplates are the pieces every app needs once and nobody enjoys writing twice: safe areas, the spacing scale, the type scale, elevation, pressable states, keyboard avoidance, haptics, list performance, error boundaries, and the colour and motion tokens. Each one ships the working implementation plus a demo that exercises it.
They copy exactly like a screen does. One prompt, the files in it, your agent writes them. Take these first if you are starting an app from nothing, because every screen in the library assumes they are already there.