Over the years I have (happily) setup and used many different ways of hosting personal and company email and websites from Zimbra, commercially hosted virtual servers, in-house servers, cheap webhosting companies, servers at home and blogs and websites in blogger, Drupal, Wordpress, etc. All of them have their merits and drawbacks. But since I moved to the Philippines and started working for Marine Conservation Philippines I was looking for something cheap (free?) and low-maintenance to host the email from my old domain name, and host a weblog for personal ramblings. This is what I ended up with.
Email hosting for your own domain name is hard to find for free. And if you do manage to find it, chances are you’re ending up on so many advertisement lists that it’s worth paying some money to stay off them. There are various cheap options that are worth considering, of which Google Apps is a very obious option. But I still preferred something free if I could find it. And along came Zoho. They are a competitor of the suite of Google Apps, and seem to offer much more than the basic mail/calendar/documents applications. Their primary focus is on businesses, and it shows with CRM, HRM, financial, support, and sales applications in their suite. But as a teaser to get you in, they offer free email hosting for businesses. The free version includes up to 10 users, 5GB storate per user and one hosted domain name (costs of registration of the actual domainname not included). Their hosting comes with webmail and offline apps, but they also offer POP3/IMAP access to their mail servers. All you need to do is setup an account and Setup DNS records for mail delivery to their servers and you’re set. I choose to not use their webmail app, but instead pull the mail into my personal gmail address from the Zoho mail servers through POP3. That way I only need to check one email address, and with the automatic labelling of gmail I can still separate business from personal email. This setup seems to work quite nicely for me, and best of all, it’s free!
The second thing I was looking for was a free webhosting solution. I wanted it both as a blog and as a website to show my resumé. You’re looking at the result. For a while I was considering just using my github and linkedin accounts and leave it at that. Aside from that my wife and me also have a travel blog on blogspot, I am a big fan of Drupal which will run with any cheap webhoster, and there is of course wordpress.com. So plenty of options. I wanted something that allowed me enough flexibility, but kept hings nice and simple for me to get started. And of course free was a big advantage. In the end I decided to discard blogger and wordpress as they are mainly focussed on blogging and don’t allow the amount of control that I prefer. And if I decide to move away, I’m not sure how easy it is to migrate my posts away from there. Lastly, not being able to write while I am offline is also a drawback, especially in tropical countries with spotty internet connections.
A self-built website in Drupal had my preference for a long time as I can use it for blogging, but comes with the enormous power that Drupal offers. But as that required setting up a hosting contract somewhere, and managing a drupal installation and database, just for a personal resumé and blog, I though it wasn’t worth the effort. And then github pages popped back up into my mind.
Github has become the standard for hosting the source code of and collaborating on software development projects. Together with travis and heroku they even offer the full workflow from development to testing, building and deployment in the cloud. Github pages adds the ability to host the documentation and project and personal webpages on the servers of github as well. Per github account you can host one personal website for free with them.
The drawback of github pages is that they offer very little on the backend side of things. No php or other server side langauage support, and no databases. Just file storage for static websites. And this is where Jekyll comes in. Jekyll is a client-side application that allows you to write weblog posts en website pages in simple markdown syntax, and render it with templates/themes into static html websites that can be hosted anywhere. And there is one more perk, it integrates with github pages, so you can just push your jekyll code to github and they’ll turn it into a running website for you on their servers. It allows you to create your own templates, or extend upon the free templates of jekyllthemes. Modifying an existing template is just a matter of writing/modifying a few html files. If you’re familiar with CSS/HTML there’s not much to it. No complicated templating systems as seen so often in CMS’es. It only uses the simple liquid templating engine to glue everything together. To set it up, just follow the steps as described by github.