Cloud9: Cloud coding that actually works

Posted on Sun 07 February 2016 in Coding

I've always wondered when it will be practical to write code in the cloud (and not locally). Most of the apps I use have already moved to the cloud: email, calendar, docs, music. Writing code is one of the last blockers to a true thin client approach for me (the other notable one being photo management).

Recently I've been using Cloud9 for writing code in the cloud, and I can wholeheartedly recommend it: it just works for me. It's basically Docker plus an IDE: you get a Docker container running Ubuntu that you can access over a web IDE. Docker is a pretty standard thing, so there's not much to say there. The good news is that there's also not much to say about the IDE: it just works.

You can theme it, I have it set up to look and feel like Sublime. It has a nice treeview on the left, you can do simple file management there. Shortcuts like copy/paste, find, etc. work as expected, as does full-text search. It's quite impressive, I've been using it for about 2 months and I haven't run into a single instance where the webapp/javascripts feeling leaks through. Part of the IDE is the ability to open terminal consoles. Like the editing, the terminal also just works, including copy/paste, shortcuts, and so on. The one use-case I found where the IDE doesn't work is over mobile: trying to use it over a touch interface is horrible. They're working on it and this will get better over time.

Some screenshots:

The one problem I kept hitting is that I'm used to Cmd-Tab'ing to get to Sublime, but if it's running in Chrome it's a tab window. I couldn't get used to that. So I used this shell script to create a dedicated Cloud9 Chromium app.

The container is accessible from the outside, so if you launch a webserver on localhost:8080, you can open it from your browser at https://-.c9users.io. At first I thought this is public so anybody can see it, but they check whether you're logged into c9, so actually only you can see it---nice!

The business model is freemium. In the free tier can run 1 private docker container (with 1G space); you can launch more, but they will be public, meaning anybody can see your files. For $20/month you get unlimited private containers, and 10G disks (see reaching resource limits). I've been using the free tier, right now I'm at 50% disk usage. Most of it is stuff I install to get something working (apt-get, pip install, etc).

This also enables a nice "separation of concerns": you can work on your personal projects on a computer (eg. work computer) without storing any files on it.