Earlier this year, the GPU on my MacBook failed about 2 days before a big project deadline. I needed to code, and Cloud9 saved me.
Thankfully, the repair was covered by Apple as a known issue for my particular model, but taking a sudden week off of work to get it fixed isn’t something my clients would have been too happy about. I still had a ton of work to complete, but at least I didn’t have to buy a new laptop.
While I (like most nerds out there) have a handful of “vintage” computers stuffed in the various nooks and crannies of my home, none of them could be considered “developer” ready. Trying to run a virtual machine on a 7 year old laptop I bought at Walmart for $100 is one of the more painful things I’ve ever failed at, so my traditional development environment wasn’t going to work out.
Cloud9 is a cloud-based development environment powered by Docker that packages a powerful IDE and built-in terminal in an easy-to-use browser-accessible interface. With the ability to import projects from GitHub and BitBucket, Cloud9 was the perfect solution to keep my projects on track with the least amount of overhead.
Importing Repositories in Cloud9
Because Cloud9 is cloud-slash-browser-based, it is cross platform and usable on pretty much any device that can run Google Chrome. This was incredibly useful for me because running Google Chrome is pretty much the only thing my old laptop is capable of doing anymore. The big advantage to this is, had I not had another laptop, is that I could have picked up a cheapo Chromebook (or even borrowed a computer from a friend) without losing any functionality.
Unfortunately, because Cloud9 is browser-based, many of the standard keyboard shortcuts I’m used to have to be thrown out the window. A few of my browser’s keybindings take priority over the Cloud9 keybindings, which means some of the muscle memory I built over the years is rendered useless.
While missing my standard keybindings is a bit of a pain, I think this issue might be remedied with a dedicated Chrome app, or even a lightweight cross-platform desktop app that adds some wrapper functionality around the website (think Slack or Franz).
While Cloud9 couldn’t run my projects’ Vagrant provisioners out of the box, each workspace provides a containerized Ubuntu container which I was able to manually provision with minimal effort (it took less than 30 minutes to get a development environment up and running). It’s worth noting that this time could have been drastically reduced if I was using a shell provisioner instead of Puppet, however.
Because of the popularity of containerized development environments like Docker and Vagrant, I think that providing some support for the configuration files of those platforms would go a long way to making Cloud9 a powerful development environment replacement. It would allow remote teams to quickly hop onto a workspace, provision it, and pair program a problem without very much overhead.
Cloud9 definitely helped me out of a jam, and I would recommend it to anyone who is in need of a fast, lightweight, and affordable development environment.