I’ve really taken a liking to making my projects require nothing but docker to build successfully. This mostly works until building something like a desktop UI or mobile application. For the former, I make it with create-react-app and wrap it with electron if I can, and similarly react native for mobile. (If higher performance on the UI side were ever necessary then I can consider native UIs, but usually I’m the only developer on personal projects and I want it to run on any platform and UI performance is minimal concern) Keeping it compartmentalized to a docker compose file (and a simple sanity check script to ensure that Docker and whatever is needed for react/electron/react native in the UI case is installed is then pretty easy to share between projects. It makes it simple to have builds work no matter what machine I’m on, and easy for devs that want to hack on top of it to just clone it and go.