Building demos as a key part of development is really key imo. Demos act as a half-step between working on the software (programming) and writing about the software (writing). Demos act more as a way to continually validate your own theses about what a project SHOULD do, and act as nice feedback mechanism as you continue to work. They are also long-living, so when you break something you can see you broke it and continue the feedback system again.
I do this as part of the work on my own game engine:
I do this as part of the work on my own game engine:
https://github.com/zinc-framework/Zinc.Demos/tree/main/Zinc....