Hot reload
Sub-second .vel reloads with state preservation.
Vel supports sub-second hot reload. Save any .vel file and the widget tree
swaps in under a second — without restarting the app.
What survives a reload
Your reactive state outlives the reload:
- Every signal value held by a long-lived component
- Scroll offsets in every scroll view and virtual list
- Focus on text inputs
- Mid-gesture drag state on sliders and other draggable widgets
- Theme, route, and any persisted state
What doesn’t
- Local variables computed inside a
build()— these are recomputed by design. - Brand-new state added in the same edit — a newly declared signal starts from its initial value; pre-existing signals keep their current value.
This is why iterating on a Vel UI feels instant: you tweak the source, hit save, and keep your place.