I found Virtual Machines to handle this quite neatly. I use windows as a host OS and I have to use desktop linux in a VM for some tasks, what i noticed was that once i don&#x27;t have to do those tasks i just hibernate the VM and when i start working again i resume the whole VM exactly where i left it with all the required applications already running inside.<p>If you were to use one VM per project though one obvious drawback is that you would have to maintain a whole bunch of OS installations. It&#x27;s also a bit tricky to be disciplined and use the correct instance of an application if it exists in both the host OS and the guest OS (even more so if you are using seamless windowing mode), Firefox as example i prefer to use in the host, because that one has all my extensions installed, but that means all the tabs i open that are related to the project will spill over to the next session when i close the project and switch to play-mode.