I used to be purely a freelancer, but recently got hired by an agency. I've moved between text editors over the years, from Eclipse to Komodo to Sublime Text 2 to ST3 and finally to Atom (with the most time spent on Sublime Text). Atom isn't quite as smooth as ST3, but it's worth the tradeoff because it's open-source and I can make it do _whatever_ I want.<p>While developing static websites I use a compiler/toolset called [roots](<a href="http://roots.cx" rel="nofollow">http://roots.cx</a>) which I find immensely useful and even contribute to the development of. When developing non-static sites I use Virtualbox, running Ubuntu Server, and provisioned with a SaltStack config that I use to ensure my dev and production environments are identical. Then I just use port-forwarding for http & ssh to communicate with the VM and mount the VM via SFTP. I could actually just do the same thing with a spare VPS, but I use a VM running on my machine because it's cheaper and faster.<p>For my OS, I use Ubuntu and a VM running OSX so I can use Sketch 3 (which is fantastic for editing vectors).<p>I use git and GitHub for source-code management, with a GitLab server that I move old private repos onto so I don't go over the limit of private repos I can put on GitHub before upgrading to the next tier. I'm pretty sure I could use Bitbucket for the same thing that I use GitLab for, but GitLab is OSS so I prefer it over Bitbucket.<p>For hosting I use DigitalOcean for any site that isn't static, and S3 or Divshot for static sites.<p>My machines are:
- A cheap (800USD) but ridiculously overpowered gaming desktop that I got for running networks of VMs. I do most of my work on this one and keep it at the office with a few 20-something inch monitors hooked up to it. It's nice to work on because it's very fast, but obviously not portable at all so I need to make sure I commit & push anything I might need to access remotely, before leaving the office.
- A fairly heavy 17 inch laptop that I generally keep at home. It has pretty good performance and used to be my primary computer before I got my desktop.
- A really nice Macbook Pro that my company gave me. It doesn't run as fast as my desktop but it's light and has great battery life, so I use it whenever I'm not at my desk or at home. I don't particularly like OSX and can't bear doing serious work on it, so I'll probably end up installing Linux or at least dual-booting, but the hardware is very nice.