Joining the ranks of many up-and-coming twentysomething computer types, I’ve (finally) set up a personal blog. Hopefully, it will come to serve as a repository of the projects I’ve made and will make, as well as what I hope are useful insights and interesting anecdotes. One thing that seems sorely missing from many blogs is a description of how all the parts fit together. Making this blog was not a trivial task, and each part was chosen for a reason. So to help future blogmakers (and so I don’t forget), here it is.
Pelican: A Python Static Site Generator (SSG)
pelican-bootstrap3: A port of the Bootstrap3 theme framework to Pelican
Heroku: A Platform as a Service (PaaS) provider with a free tier and git-based deploy
Travis: A free Continuous Integration (CI) provider, fed by Github
Cloudflare: A Content Delivery Network (CDN) with a free tier
Math Render Plugin For Pelican: A MathJax plugin for Pelican
SSGs are all the rage these days, and for good reason. They make lightweight websites that are easy to manage and can run almost anywhere. Pelican is based on Python (my favorite language) and has a simple theming archetecture, a buildpack for Travis, and lots of themes. Plus, it’s super-simple to deploy and actively developed.
Pelican-bootstrap3 brings the Bootstrap3 theme framework to Pelican. Bootstrap is the framework these days, and powers a lot of the web as we know it. Seriously, just ctrl-f the source of your favorite sites for bootstrap.css and you’ll see what I mean. More to the point, Bootstrap is pretty, includes glyphicons and fontawesome(so pretty glyphs all over the place), and is responsive. Responsive design, aside from being a huge buzzword, is very useful, because it means your pages are pretty everywhere, not just on the desktop.
All of my previous attempts at hosting a website used nearlyfreespeech.net. NFSN is a great host, and I don’t want to hate on them, but their price schedule makes it hard (for me, at least) to immediately scale. Say, for instance, I post something that makes it to hackaday and my site gets flooded (one can dream). If my cost excedes my deposited funds, then poof goes the website. Heroku, on the other hand, has limited resources, but it’s free, and those resourses only scale if I want them to. Also, it’s combatible with git, Pelican, and Travis nearly out of the box. The only real problem I can see is that the webserver sleeps after so long without being accessed. I could set up a script to ping the site every hour or so, but the few seconds of delay don’t seem worth abusing Heroku’s generosity.
Github makes it easy to keep track of revisions. It also allows me to write posts online and commit them. That way, I can post from any computer with …more ...