The first website I built was raw html/css hosted on dreamhost. This was shortly followed with a Wordpress site, also on dreamhost, using a variety of themes and plugins. Over time I soured on migrations, upgrades, plugin compatability, and worrying about security.
Which leads to my current blog stack:
- Jekyll - Static website generator, with the Liquid templating language
- Bootstrap - Web framework
- Startbootstrap clean blog - Blog template, jekyll-ready
- AWS S3 - Static webiste hosting
- S3 Website - S3 website deployment utility
- Cloudflare - CDN and DNS
- Namecheap - Domain registration
I started using Jekyll a few years ago, with version 2.5, as was immediately impressed by it's simplicity and functionality. Since then I've wrestled a bit with how to list gallery images and how to have different pagination for different post categories. Luckily there is a strong contributing community, providing suitable workarounds such as jekyll-directory and category-pagination. Jekyll has since moved up to 3.0, and as this site does not need cateory pagination the transition from v2.5 was easy.
Bootstrap is the no-brainer choice for a repsonsive mobile friendly website, and the clean blog from Startbootstrap was an easy choice for the first layout template. An added bonus is that Startbootstrap provides a Jekyll ready repository of the template.
Namecheap has an easy user interface for domain name management, and also provides simple email forwarding, which Cloudflare and Route 53 do not. The forwarding is useful if you want all email going from your domain to your personal gmail account. However Namecheap's DNS service does not allow the use of a (cough hipster cough) naked domain. Both Cloudflare and AWS Route 53 allow naked domains, but Route 53 costs another $0.50/mo. The combination of Namecheap just as the registrar and the free Cloudflare DNS, which includes the CNAME name flattening works great. The CDN was not needed but it is included as a bonus. The only caveat to Namecheap is if the domain is allowed to expire, Namecheap will pass it to another site that will hold the domain name ransom. If you even think you might want to keep the domain then do not allow it to expire.
Currently I'm using a free Zoho account for my domain email. However, elsewhere I'm using Mailgun for mail forwarding, free for the first 10K/mo emails, which works well as an alternative to the Namecheap mail-forwarding feature.
- Namecheap: ~$10/yr
- AWS S3: ~$.50/mo
- Cloudflare: free
- Fast website
- Works well with desktop and mobile
- Worry-free security
- Low maintenance overehead
- $16/yr TCO