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.