As a technical blogger, consider the following three options:
• WordPress(.org)1: The absolute leader in blogging software. This open source application currently powers an impressive 14.7 percent of the top million sites (not just blogs) on the Web.
They say Rome wasn’t built in a day, but I wasn’t on that particular job.
• Static site generators: Increasingly popular among developers, site gener- ators such as Jekyll or the more user-friendly Octopress framework (which is built on top of Jekyll),2 typically generate your blog from template text files that you can edit in a markup language like Markdown or Textile without the need for a database or a complex server setup. The compiled output will be a static site with HTML and CSS files that you can upload to any web server (even Amazon S3 and GitHub Pages3).
• Blogging services: A variety of providers offer the ability to host a blog using their web platform without having you install anything. Common services of this nature include WordPress.com (not .org, which was described in the first bullet point), TypePad, Blogger,4 LiveJournal, Poster- ous, and Tumblr (however, blogs hosted on the last two services tend to be shorter and considerably more akin to micro- or nanopublishing). Let’s quickly review the pros and cons of each of these solutions.
WordPress: the Smart Choice
As the most popular blogging software, self-hosted WordPress is able to boast thousands of plugins and themes that let you customize your blog however you like. It has one of the richest online ecosystems, even when compared to other software outside the blogging world.
Should you ever need help with WordPress or wish to have custom features created, there are plenty of developers who are familiar with the system and ready to help for a fee. Likewise, countless designers have worked with WordPress themes before, so finding a good one should be fairly easy. As a self-hosted solution, WordPress has the disadvantage of requiring a server to host it on (unless you opt for the commercial hosted solution provided by WordPress.com). Your server will need a web server such as Apache or nginx and MySQL for storing and retrieving data, plus support for a recent version of PHP. You’ll also need to update WordPress itself pretty frequently so as to avoid security vulnerabilities that crop up from time to time.
According to some critics, WordPress is also bloated and slow (particularly when filled with numerous plugins of varying quality). Thankfully, there are excellent caching plugins that make WordPress very fast. We’ll cover these plugins in the next chapter, which is dedicated to fine-tuning your blog.
2. github.com/mojombo/jekylland octopress.org, respectively. 3. pages.github.com
Static Site Generators: The Hacker Way
Static site generators are still very much a niche, but their increasing popu- larity with (the good kind of) hackers may be justified. Such generators offer you the ability to directly edit your posts, blog structure, and design by using a text editor such as Emacs, Vim, or TextMate.
Many of these generators are simple, small, and written in scripting languages such as Python, Perl, and Ruby; so if you are familiar with these languages, you’ll be able to easily extend them to customize their behavior. This process is arguably much simpler than learning how to customize a large system such as WordPress.
Other points in favor of Jekyll and similar static generators are the ability to store your blog under revision control through tools like Git or Subversion and the simplicity of being able to deploying the output site pretty much anywhere, as well as its positive performance implications. In fact, since your blog ends up being a static site, its performance should be very good—even on commodity hardware.
The major disadvantage is that you are on your own. There are very few pre- made add-ons that aid you in accomplishing even a small percentage of what you can do with software like WordPress. For example, if a new social network is announced, you can expect free widgets for it from some WordPress plugin developer in a matter of days. Using a static generator, you’d most likely have to write the code yourself. Depending on the type of blog you envision and your coding abilities, this may or may not be a deal breaker for you.
Blogging Services: The Easy Way
Blogging services come with the major advantage that you don’t have to worry about servers and their configuration. The company behind the service is responsible for the blog software and server upkeep.
Even some large organizations use hosted services for their official blogs. For instance, Amazon uses TypePad for many of their blogs, while Netflix uses Blogger. This choice allowed both companies to immediately inject themselves into an existing community of bloggers and commenters. In doing so they also guaranteed for themselves open communication with their customers should their main sites become unavailable.
Status updates become crucial to placate irate customers during outages. So if you’re blogging for a company, consider hosting your blog on a different hosting solution from the one you use for your company site.
The main problems with blogging services are a relative lack of flexibility and customization, the possibility of being kicked out at the discretion of the service owners, vendor lock-in, and other arbitrary restrictions imposed by the vendor.
For example, WordPress.com will not allow you to upload your own themes and plugins, and your choices are limited to what they provide. Likewise, you won’t be able to insert arbitrary JavaScript code or Flash files into your pages, which in turn limits your ability to use third-party tools that are based on JavaScript (e.g., web traffic tracking) or Flash. Their policy is also less than friendly to bloggers who use affiliate links as a way of earning extra income. While some blogging services are better than others, they all share certain kinds of restrictions when compared to a self-hosted solution. With some platforms you’ll also have to pay a monthly or yearly fee. WordPress.com is free; however, it does require that you pay for every little customization, including associating your own domain name to the blog. (I definitely don’t recommend that you use one of their subdomains, such as yourusername.word- press.com, for blogging as this may cause a URL-based lock-in).
Should you decide to go this route, carefully evaluate features, customization options, policies, and export facilities before committing.
Which Blogging Platform Is Right for You?
So which one should you go with? Opt for a self-hosted WordPress installation if you are the kind of person who doesn’t mind dealing with a remote Linux box. The chief reason for this is that you’ll be working with what is a de facto standard in blogging that offers you maximum flexibility and independence. If you don’t have an IT background or would like to test the waters before committing to something that requires you to rent hosting, then by all means go for a hosted blogging solution. Doing so will be a much easier and friendlier choice that will get you up and blogging in very little time.
In such a case, I recommend Blogger (from Google) due to their somewhat lax policies and because they allow you to associate your own domain name with your Blogger blog for free, as explained in Using Your Own Domain Name with Blogger, on page 39. Plus, you’ll tap into the existing community around this well-established blogging platform.
Given the technical audience of this book and my recommendation that most committed bloggers opt for a self-hosted WordPress platform, I will provide a lot of guidance for those who have chosen WordPress, both within this and the next chapter.
If you went with an alternative solution like Blogger, however, do not skip these two WordPress-heavy chapters. You’ll find plenty of useful information about DNS, SEO considerations, sidebar configuration, subscribers, and much more that still fully applies to you!
I’ve provided hints for Blogger users throughout these two chapters, but it would have been impractical for me to provide detailed instructions for each major blogging platform that exists. If you didn’t opt for WordPress (or Blogger), you may have to figure out on your own or look online how—and if—a given feature discussed is available to you. While references to WordPress (and Blogger) may still appear here and there throughout the book, all other chapters will be blog-engine agnostic.