I’ve had a Dropbox account for a few years, but it only really contains a cache of PDFs and common tools that I install on a new PC. It was only by accident that I discovered you can host a website from Dropbox. In fact, it’s surprisingly easy to share any HTML files from your public folder under your Dropbox folder. As an added bonus, Dropbox maintains a list of changes for the last month which should definitely avoid any epic cockups and hopefully forego the need for any hardcore source control. A hunt for a bandwidth limit found this, with 10GB sounding like something that I couldn’t even use even during a serious slashdotting.
Google App Engine
As someone who likes the platforms that Google provides, and having previously seen discussion of GAE on other blogs where it’s been used as the backend storage for game stats, it looks like a platform that I’d be interested in.
The first step is to pick a language from those on offer: Python, Java and Go. In each case I think there’s a sample of hosting a set of static files as require with Python being the most common example I found. My primary choice would be Go since I’ve read quite a bit about it and am interested in learning the language and trying some of the features that it has over and above my day-to-day C++. (I’d like to use it even more so since a Go tour was posted). Problem is, it’s a Mac only development environment and I’m thinking that my only alternative of developing on Windows and then deploying to debug sounds incredibly painful.
That leaves Java and Python. Java is an Eclipse development environment, which pretty much takes that out of the equation – it’s been a while since I looked at it, but all I remember something like “oh that’s it is it, I’ll just pop back to Visual Studio.” For me Python looks really interesting and with the number of tutorials for static HTML hosting focussing on Python (1, 2, 3 for example), it looks like a good start. In fact, the first tutorial I found shows the Windows Launcher which I found on Google Code here and described here – that looks like a useful tool for updating the content of the site – I want it!
Moving forward with Python, I need a version of Python installed but since there are different options depending on what type of Python you want, it’s not packaged in the App Engine download from Google. Based on the choices available I went for pypy since it says it’s small and fast, but when you go to download, the version with a JIT compiler is in beta for Windows and turns out to be as big as the App Engine download.
With both packages in hand, or rather on desktop, it’s time to install. For reference, the App Engine package needs to know where Python lives, but there’s some freedom in setting up the dependency, so I installed Python halfway through installing App Engine. Once both were installed I found the Google App Engine Launcher tool comes inside the GAE package and is prebuilt into an .exe. Flicking through the tool I get an idea of how it would fit into the workflow of iterating on the HTML pages I’m developing.
The Final Decision
After all that investigation into Google App Engine (and it was a lot of investigation, I really wanted it to be first choice as learning a new language and platform would be great fun for me), I’ve discovered that in the short-term, it really is easier to use Dropbox. The automatic upload of any file following an edit means that you can immediately refresh any other PC or device that is looking at that page which reduces my iteration time over the separate deploy stage. I may come back to App Engine if I need the extra download quota that it offers for free – 1GB/day.