Is Vagrant meant to be used as a complete coding environment?

I’m a C++ and .NET developer. In the future I would like to do some graphics programming with OpenGL (C++). I work with/in different working enviroments:

  • Home, PC, Windows 10, High Specs
  • Work, PC, Windows 11, Medium Specs
  • Travel, Macbook, Mac OS, Medium Specs

Since I am switching between a lot of these I share the source code using Github. The other problem is the building tools, IDEs and general work environment. I would like to either program fully on windows or on linux, but since not all of my computers have the same OS, that would be a problem. I thought about using Virtual Machines and code on them, then I could still use say the Macbooks normal OS (Mac OS) for daily stuff like e.g. taxes. The problem with virtual machines though is that I would still need to fully setup my entire Windows dev-environment for each (virtual) machine.

I found vagrant to provide the functionality to configure VMs in a single file, which sounds pretty fitting. I could simply install vagrant and virtualbox on any system and using my Vagrantfile I can fully develop on there. And there would be no “it works on the other machine” problems, since it’s the same setup/environment on all systems.

What I’m not quite sure yet is if vagrant is 100% the fitting tool for this. As far as I understand it’s more used like docker, where Code is written on the Host and then finally run (and/or compiled) on the guest vm. Vagrant also only allows for the VM specs to be configured, so any programs and configuration have to be added by scripts as far as I know. And I will need a lot of tools to be installed (Browser, Vistual Studio 2022/Code, GCC, CMake, MSVC, Terminal Config, etc. you get it). Configuration is also pretty important for me, e.g. program Themes etc.
So this leads to me thinking I would rather just create some sort of VirtualBox template.