I'll offer a couple alternatives to @jgraup but his suggestions are all good ones. I also must note that I use macOS so some of the particulars of these suggestions won't work on a PC but there should be equivalents.
If my client(s) already have a site up using maindomain.com, I will usually set up a staging site at dev.maindomain.com through their web host.
Like you I work locally and I push development updates to the staging site so the client can view and give feedback. For this I use WP Migrate DB Pro which is invaluable to upload the database and the SFTP plugin for Sublime Text 3.
If your code editor has built-in FTP/SFTP then all you need is WP Migrate DB Pro for the database and media files which you run either through the WP Admin or via WP-CLI using the command line. Regardless of where your staging site resides, WP Migrate DB Pro will work.
Alternatively, I just started using DreamCompute with DreamHost via my business VPS account to host our staging server(s). I am not a Linux expert by any means but you can get a web server set up with some creative Googling and copy and pasting without too much trouble. Your web host may have a similar scalable server option with OpenStack or something similar. We've found DreamCompute to be super fast and perfect for collaborative projects.
Another option is MAMP/MAMP Pro (an alternative to Vagrant) which can make your local site available over the internet. On Mac, CodeKit can do this as well.
Lastly, if you have your own site like myportfolio.com, you can always install staging client WordPress installs in subfolders so something like: myportfolio.com/superclient/. And that folder has it's own WP install.