Action.io, django and poya days

Last week I got an early access invite to the private beta of Action.io. Coincidentally, I wanted to learn some Django. Hence Next Poya When? was born and it only took a few hours to start coding from scratch to deploying successfully in the Google App Engine.

Action.io is a place to start your projects without worrying about all the mundane setup tasks. Once you sign up, you can create boxes. There are cardboard boxes, plastic boxes, and.., oh wait, wrong kind of boxes. The boxes in action.io are comparable to VPSs. You can choose from Ruby on Rails, Django, Node.js and Go boxes to start with. If you get a Django box it’s already pre-installed with python, django and all other utilities required for a typical Django project. All the boxes come with a Web IDE, Emacs and everyone’s favorite Vim as editors. There is PostgreSQL and MongoDB integration as well.

Action.io interface
Action.io interface (click to enlarge)

To set up, all I needed to do was copying my .bashrc and .vimrc files, install some Vim plugins with Pathogen and add the SSH key of my box to Github. All this takes less than 10 minutes. (But don’t tell that to your Project Manager, give him 2 hours effort and he wouldn’t know!)

Now create a project and start coding right away!

django-admin.py startproject poya

Once you build stuff to some extent and want to test how it’s doing, the site can be previewed easily. For example, start the server with

python manage.py runserver 0.0.0.0:3000

and click on Preview -> Port 3000. You can choose from a range of ports from 1024 to 9999.

Previewing the site
Previewing the site

Once done, deploying was a piece of cake. Action.io has Heroku and Google App Engine integration. Deploying the site in GAE took only a single command:

appcfg.py --oauth2 --noauth_local_webserver update nextpoyawhen

Then I pointed my domain to GAE and, voila, we have nextpoyawhen.com moving like jagger!

It’s really amazing how fast you can get everything done with action.io. If I did all this in my laptop it’d have taken ages. It goes without saying how mundane and time-consuming it is to install all libraries, dependencies and get the environment set up in your machine. More often than not, we get tired of the project even before we really start it. We spend 80% of time setting the things up, and much less time coding.

Also, since action.io lives in the web, it’s accessible from anywhere. If someone reports you a bug when you’re at office or travelling, you can just log into your box from the browser, do a hotfix and deploy within minutes. No effort spent for syncing files. You get your favorite environment setup anywhere in the world.

Action.io doesn’t work offline though, at least yet. It doesn’t require a fast connection, but if yours gets disconnected often, be wary. I hope they would implement the offline capability soon.

As for Django, I’m impressed by the framework. It’s quite easy to catch up with, and it’s Python. You can host Django sites in most web hosting providers (unlike node.js), including Google App Engine and Heroku both of which have free plans to serve small sites. I’m studying with The Django Book, recommended by Raditha. Of course, nextpoyawhen could’ve been done with some client-side javascript, but that’d have defeated the purpose. I wanted to do something with django and try out action.io, so it’s like catching two stones with one angry bird, or whatever that is. The source code is hosted in github.

So, the next time you are tired of working all week and want to know when the next Poya holiday is on, you know where to look. 🙂