Part of: Questions & Answers · The Story of Morph
Good question — you'd think "compiled" means "restart to see changes." It doesn't.
Dev mode works like this:
morph_devrt)logic.so — compiled separately from the runtimelogic.sodlopen loads the new library and the live-reload machinery swaps the changed nodes in the tree, without restarting the windowSo the compiled core (the renderer, the window, the layout engine) never restarts — only your logic module is hot-swapped. It's the same technique dynamic plugin systems use, applied to your own code.
CSS and JSX structure changes re-run the front of the pipeline (parse → IR → node tree) and re-mount the affected part of the tree. Your app state persists across the swap, and the loop is near-instant for small changes.
The Dev Mode page has the full pipeline diagram. And when the compiler moves to Rust (Rust Compiler & Native CLI), this loop gets dramatically faster — compile time is the only slow part of the cycle.