With hundreds if not thousands of unique device-browser-combinations
potentially accessing a web application it is not feasible to have
all those physical devices at hand or even virtualize locally if you
are not in the business to do so anyway.
So instead of having an ever growing number of virtual machines, I
decided to move my testing to browserstack. They offer real and
virtual device testing in both manual and automated modes. They can
even route your local webserver through their service, which is nice.
For supporting a small set of legacy apps still have the following
virtual machines at hand:
Vagrant Scotch Box (ubuntu server with apache webserver)
Vagrant VVV (ubuntu server with nginx webserver)
Software I use on a daily basis
Jetbrains Webstorm
Nvim
Tilda (Ubuntu) or Yakuake (Manjaro)
Tmux
VSCode
My previous setup
Host and guest operating systems
Ubuntu Mate as my host OS
Several virtual guest machines:
Android x86
Mac OS X / XCode iPhone Simulator
Windows 7 with IE9
Windows XP with IE8
Vagrant Scotch Box (ubuntu server with apache webserver)
Vagrant VVV (ubuntu server with nginx webserver)
Other software I use daily
Bower to easily manage my dependencies
Git because I need to keep track of things, and git is great at doing that
Gulp to automate stuff like minification and watch / refresh cycles
Tilda because it's the best drop-down terminal there is
Tmux because I like it better than screen and it feels like a tiling WM
Vagrant for quickly spinning up pre-configured virtual environments
Vim for all my coding needs, remote and local
Virtual Box as the basis for my Vagrant setup (see above)
Weinre for cross-device testing and debugging
My development hardware
Thinkpad X230 as my main development machine
Various brands of smartphones and tablets for on-device testing