Switching from MobileMe & my short adventure with Google App Engine
I can't remember how long ago it's been that I've used a free email address like hotmail, yahoo or gmail. For more than 8 years I've used my own domain names to host my email. In the very beginning on my own little server at home, later on a “real” colocated server when I still had my own company, on the servers of my employer and the last year on Apple's MobileMe service.
Last september, my MobileMe subscription needed to be renewed, and it got me thinking if that was something I really wanted to do. It's $99 a year for 20 GB of email/calendar/contacts hosting and iDisk for online storage. It also offers easy web galleries with a click of a button within iPhoto and great syncing between my home- and work Mac's and my iPhone. Not too pricy for what you get really, but still… it got me thinking.
Last september, I also got a new job, where I no longer work on an Apple computer, but on a laptop running Ubuntu. The first problem with MobileMe quickly popped up: it doesn't sync your calendars or contacts to Linux. So on the “plus” side of MobileMe I could erase its ease of syncing everything.
After searching for good alternatives to MobileMe I found the following solution: Google Apps and Flickr. Google Apps takes care of my email (on my own domain name), calendar and contacts, can sync it between my Mac (Mail.app, iCal and Address Book) and my Linux PC (Thunderbird and Sunbird) and with their Exchange support, all changes get pushed to my iPhone immediately.
That left the question of photo hosting, something that is very important to me. I went with Flickr, and got myself a Pro account for $25 a year. It offers unlimited photo hosting with great iPhoto support. The free Dropbox software is my iDisk replacement that comes with 2 GB of online storage, and is easier and faster to use. The only thing I can't replicate is the “Find My iPhone” service which MobileMe provided, but for the $74/year that I now save, I can live without that just fine. Drawback so far? Well, the Flickr UI is ten times worse than the beautiful MobileMe web galleries, but that's where the Flickr API comes in - you can make your own UI as I did on this site.
When I started the new bolhoed.net in Django (see the previous blogpost) I of course needed hosting. The previous version was just one simple static html page that I hosted on my employer's server, but with a new dynamic site, I thought it might be better to try Google App Engine (GEA). It sounds really really great: free hosting of Python or Java projects, about 1.3 million requests per day, 1 GB of outgoing traffic per day and 1 GB of storage. All for free! And with presumably good Django support! So I started rewriting the bits of code that would not work out of the box on GAE, and indeed got it running on their servers within two hours.
Once it was running, I started thinking about making a blog to share my wonderful experience with Google products. And sadly, that's where the cracks started to appear. I now needed a database to store the blog posts and comments - and since Google only offers their own object oriented Data Store, the Django ORM was completely useless. Gone are all of the handy shortcut functions, views and even admin site. I did find the App Engine Patch to be useful (it simulates enough of the Django ORM to re-enable the admin site for example), but there were problems. The local SDK doesn't work correctly with Python 2.6, the Data Store uses ridiculous keys so you get very long and ugly url's and the standard “mail on sever error” functionality doesn't work. So, I re-rebuild the code to use all normal Django functions on a normal MySQL database once again and finally hosted it on the servers of Goldmund, Wyldebeast & Wunderliebe. Again.
I think that when you are building a Django project that does not need a database, then Google App Engine is the greatest thing since sliced bread. Once you need a database however, too much of the Django magic is gone and leaves you feeling bit naked. Maybe a framework like Pylons would be better suited, I don't know.
One last thing: I really do think Google Apps is a great thing to host your email, calendar and contacts on. Not just me, but Goldmund, Wyldebeast & Wunderliebe uses it for all of their business email and calendar. We run our company infrastructure (so to speak) on Google, and it doesn't cost a thing. Compare that to maintaining your own servers, and I think we got a clear winner. Add Google App Engine in the mix, and you could run your entire company including hosting your websites, for free, without needing a server admin at all. Pretty neat!
Do you have similar or different experiences with Google Apps or Google App Engine? Let me know in the comments.