Cloud9: Cloud coding that actually works

Marton Trencseni - Sun 07 February 2016 - 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.