Mainstream blogging platforms like WordPress, Blogger, Tumblr, etc. aren’t designed for hackers. They’re encumbered by features developers just don’t need or want.
And, out of the box, the popular blogging platforms certainly lack a lot things coders actually would want, such as code syntax highlighting, blog theming capabilities using a standardized templating engine, markup language support besides HTML, and integration with source code repositories, among other things.
If you’re looking for a blogging solution that’s programmer-friendly, you’ve come to the right place. The free and open source blogging platforms I’ll talk about are designed with the needs of developers in mind, and not their moms’ (unless she likes to code too).
Hexo is a blogging platform powered by Node.js (it says so right there in the site’s tagline).
Its hacker-friendly features include native support for GitHub Flavored Markdown (GMF) as well as templating and extensibility capabilities using EJS, Swig and Stylus.
Installing Hexo will take you but a few seconds, assuming you already have npm set up and ready to go. Boom:
$ npm install hexo -g
Fun tangential fact: "npm" doesn’t stand for Node packaged modules or Node Package Manager. It’s a recursive acronym like PHP. Or more accurately: "It’s a recursive bacronymic abbreviation because it stands for ‘npm is not an acronym’," as the author explains. [Source]
Jekyll is a static site generator that compiles your markup files into Web-ready HTML documents — that’s what all static site generators do, more or less — the value proposition being better Web performance and the option to ditch your databases and server-side scripts.
Jekyll has a steady-growing ecosystem, as evidenced by the other open source projects being developed for it:
- Octopress – a blogging framework designed for hackers
- JekyllBootstrap – makes it easier for you to use your GitHub Pages to host your blog for free
- Exitwp – helps you move from WordPress to Jekyll
Jekyll can be installed as a Ruby Gem:
gem install jekyll
Anchor CMS is a featherweight; the project’s source code .zip archive is just a little over 200 KB.
Off the bat, Anchor supports Markdown syntax, which a lot of coders feel is easier and more natural for blog-writing and formatting. It also supports art-directed blogging, i.e., you can easily make each post look different.
Wheat is truly cool: It pulls articles from your GitHub repo and then publishes it to your website. Imagine the possibilities! Like open source blogging where other hackers can issue pull requests for correcting and improving your blog posts.
Wheat is developed with Node.js and can be installed as a Node packaged module:
npm install wheat
Nikola, a static site generator, is strongly blog-oriented but it can also be used for any other type of website. Code wranglers will love the fact that it has a small codebase, which the creator of Nikola deems as an advantage because it means "programmers can understand all of Nikola core in a day."
Nikola supports a whole slew of markup languages: reStructuredText, Markdown, etc. And, of course, HTML will do just fine too if that’s how you roll.
Stolen straight off its repo description: toto is "the 10 second blog-engine for hackers."
toto is a minimalist blogging engine that runs on Git, which means you can version-control your posts just like you would when you’re writing code.
Poet is another Node.js-powered blogging platform. What makes it unique is the project’s snooty character mascot. Just kidding.
What’s notable about Poet is it gives you the ability to write your blog posts using a markup language you’re comfortable in, whether it’s Markdown, Jade or whatever you want. Also, customizing routes for your blog posts and other pages is simple.
Dropplets is a minimalist Markdown blogging platform. Its purposefully limited feature set helps makes sure you spend more time writing and less time tinkering.
Pelican is another static site generator, but it’s written in Python. It supports reStructuredText, Markdown, or AsciiDoc markup. It has code syntax highlighting right out of the box, and an importing feature for data coming from other publishing platforms such WordPress. Theming can be done using Jinja2.
Wardrobe is a minimalist blogging platform with a simple UI that will help you focus on writing. Wardrobe is developed with PHP. It’s very similar to Anchor CMS.
Bolt is a full-on content management system, so you can use it for other purposes outside of blogging. It uses Twig for templating and comes with its own Symphony debug bar for tracing code issues. And, with absolutely no magic required, you actually get to choose which relational database management system to use for a change: SQLite, MySQL or PostgreSQL. Need more reasons? How about this: Bolt was built with the assumption that you might actually want to run unit tests on your CMS; it supports PHPUnit natively.
Shout out to the awesome Six Revisions readers who pointed me to some excellent open source blogging platforms via the comments of another related post.