Feeds

Merits (and Problems) of Creating Your Own Blog Software

Submitted by Philipp Lenssen on November 10, 2005 - 2:52pm in

If you want your blog to take off, caring about the right choice for a blogging software is an important factor. Now I don't want to discuss the various blogging tools here. Chris is already doing a good job of that. Instead, I want to discuss how you can benefit from creating your own custom blogging tool, and what problems you will face.

First of all, you need to be able to program to make your own blogging tool, of course. You should know about HTML, CSS, a scripting language like Python or PHP, and database systems like MySQL.

What do you gain from recreating the wheel? Myself, I was starting to get dissatisfied with the blogging tools presented to me. I had a Blogger Pro account, but the tool wasn't fast, simple, and customizable enough. There are certainly more powerful packages around than Blogger, but the truth is, if you want complete customization, you will have to program sooner or later. And then it might become tougher to learn to understand the tool's API, template language, and architecture. In other words, if you want a 100% custom wheel, recreating one may indeed be the way to go.

The blog address

Whether you go for an existing blogging tool or not, do go for your own domain. When I started out blogging I used to run Blogger.com's application. Not on the Blogspot domain, though, but FTP'ing the content to my own domain. I think that's important now and will become even more important in the future; some (like Nielsen) already say having a domain at *.blogspot.com or similar will become like having a site on Geocities today. If nothing else, without your own domain you will be stuck to a specific tool and can't easily move to another domain (not without losing subscribers, PageRank, bookmarks, and so on).

Pros and cons

Here are some basic features my blogging tool has:

  • It allows me to very quickly post using an extra-simple interface (just an input box for the title, and a text box for the content).
  • It's on my server, so I simply include my own header and footer libraries to make it look like my blog.
  • Complete XHTML1.0 Strict/ CSS approach, allowing me to do easy redesigns.
  • Template changes become instantly deployed on all pages, as all pages are created dynamically (e.g. with Blogger Pro, you need to export to your server, and that can take some time).
  • I'm using the powerful Google API for internal blog search.
  • There's the option to publish podcast enclosures in posts.
  • It's free.

Here are some custom features I built into my blogging tool:

  • There are certain typographically correct characters your keyboard is missing. Like, a correct quote sign, or a long dash. My tool converts my ASCII characters, like "--", to the correct HTML entity.
  • I wanted to have a forum that both connects a post to its comments, but also allows you to create new comment threads without any post connected to it. This way, forum visitors can interact without specifically replying to any of my posts.
  • There's a chat room on my blog, and I could easily connect it to the main template, dynamically showing the number of chat room participants at any time.
  • Creating my own ad rotation system was a job of a simple PHP switch statement, and a randomize function.
  • As my blog's a source in Google News, I can trigger just which posts appear in Google News. (E.g. I don't want humorous pages or small link posts to appear in Google News).

Some features come with the approach of a custom blogging program without real extra effort:

  • You can directly access the database tables using SQL. I'm using the free phpMyAdmin for that.
  • Though there will still be spam comments, spammers have have less incentive to configure their tools to attack custom-made blogs (attacking the big fishes only offers them higher rewards).
  • Search and replace or other global maintenance jobs can be implemented easily.
  • You can easily backup the database content to your hard-disk using phpMyAdmin or similar tools.
  • You don't have to wait for a new version to fix existing bugs, but can fix them yourself instantly.
  • Almost any blog feature you can think of, you can implement within hours or days.

The custom features I described were just the one I needed. You may certainly need other features, but think about what will save you more time implementing them; fiddling around with a blogging tool you've downloaded somewhere, or reading your own code. Reading your own code is almost always faster. But writing something from scratch takes serious time, too.

And of course, there are some problems when you create your own blogging tool:

  • You may not have the knowledge to understand all parts necessary to make a great blogging software. Maybe you misunderstand an RSS syntax detail, and you don't even realize you are missing out on visitors.
  • Public blogging tool projects are certainly created by professionals or professional teams, and they may create higher quality code than you.
  • You need to invest time for every feature you want; be it pinging, trackbacks, comments, and so on.
  • You can't easily exchange templates or code samples with others in a community, because no one else is using your program.
  • You may introduce security problems, such as SQL or HTML injections.

Is this for you?

So is a custom blog tool something for you? It really depends on how much different you want your blog to be (not in terms of layout -- yes, I do think you should have your own layout instead of a default template -- but in terms of functionality), how good a programmer you are, how knowledgeable you are about the architecture of a blog and necessary features, and how satisfied you are with existing tools. If you are very satisfied with Wordpress, Movable Type, LiveJournal, Blogspot, MSN Spaces or similar web apps, that's certainly fine. Many of these let you export your content, too, so you can even switch to something different later on (as long as you use your own domain, that is). But if you want 100% power, 100% customization, and you don't mind the risks and extra work involved (and you're up to handle it, of course) -- try program the blog yourself.


I'd agree that writing your

I'd agree that writing your own blog software is crazy if all you want is a place to publish your content. On the other hand, it is a great way to learn the latest "technologies". I've actually taken the dasBlog app and turned it into a blogging engine (a library without a user interface) then plugged it into our site hosting framework through a custom module. It was surprisingly easy and worked out well, however it makes it very difficult to stay current with the latest changes released for dasBlog. The excercise was a great learning experience and the results ended up in production.

I'd rather use an existing

I'd rather use an existing blogging software and hack it until it suits my needs, but that's just me.

I do see the merits in setting up your own blogging software - maybe when you have your own blog network, etc etc?

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <h2> <h3> <h4> <img> <div> <a> <em> <strong> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <span> <table> <td> <tr> <caption> <th> <hr> <pre> <br> <p> <object> <param> <embed>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.

More information about formatting options