Project Hosting

We’ve already spoken about how you can submit your project source materials, but you’ll more than likely also need a place to host your application on the web.

Cloud servers

If you’re building any sort of web-connected application (be it web, mobile, or a desktop application) you’ll need a server to host it on. These days virtual servers are a dime a dozen (and often significantly cheaper than that) – be they a blank box with command line access that you setup yourself (aka IAAS), or a PAAS solution that gives you click-button access to databases, caching layers, system utilities, monitoring, and analytics services – all with a nice GUI to keep you from having to delve into command line hell.

A word on containerisation (Docker)

Containerisation and, more specifically Docker, is all the rage right now. If you haven’t really run across containerisation before then think of it like server virtualisation on steroids – i.e. In a plain text file you specify the OS you want, the software you’d like installed (Apache, Nginx, Python, whatever), how you want to configure that software, where to find your code (locally, straight from GitHub), and the result is a tiny virtualised server.

Said tiny virtualised server can then be spun up in minutes either on your laptop, in the cloud, or on your team mate’s laptops and all of you will have exactly the same build and configuration. Say goodbye to the headaches of different configurations between development and live applications!

Docker is the best project in this space at the moment, and they’re busy building a great ecosystem including a marketplace for containers and tools for orchestrating multiple containers together into more complex applications.

And due to Docker’s crazy levels of popularity, Amazon Web Services has Docker support built-in!

Static website hosting

If your project, by virtue of its nature, doesn’t already have a web presence (e.g. it’s a mobile app or a game) then you’re very likely going to need host a static website somewhere (i.e. A pile of HTML, CSS, and JavaScript) to give your project a home.

Probably the easiest and fastest way to achieve that at the moment is via GitHub Pages that hosts a website straight out of your GitHub repository. In addition to that, GitHub Pages provides the option to generate a project site from a collection of pre-built themes and to point your own custom domain at your site.

If you prefer to start from scratch (on GitHub Pages or elsewhere) Bootstrap and Foundation are the two preeminent responsive frontend web frameworks around these days that cut away a lot of the work of making a site look pretty so you can concentrate on content (and your awesome GovHack project).

Beyond GitHub you could also look at hosting your site on Heroku.