all posts

Outsourcing your Blog engine’s functionality

Published to Blog on 17 Jul 2013

[NOTE: I wrote this blog post over 2 years ago and recently found it in my Windows Live Writer drafts. I must have saved it to come back later and do some editing but forgot about it. It seems to be fairly up to date so I’m hitting the Publish button. Sorry it is 2 years late]

I’ve been working on and with Graffiti for quite some time. While Graffiti was a Telligent product I built some custom widgets and themes. After it became an open source project I contributed to the project’s core. But since then my excitement for Graffiti and blog engines in general has waned. Why? Because I don’t need a full-blown blog engine and maybe you don’t either.

To be fair to Graffiti and WordPress, they are great products and provide much more than just blog functionality. And I will still make use of them in many situations. Really they are both now CMS platforms and have a plethora of addons that are continuously rolling out that really extend the products. WordPress won’t die anytime soon, if ever. I’m purely talking about the functionality needed for a blog, specifically for a developer who has the ability to seek out and use other options.

This no-blog option is not for the faint of heart and I’m not saying that you should take this route, but it is something I’m considering. It is definitely not for someone who just wants a simple “push a button now I have a blog” blog. But for someone who is constantly tweaking and experimenting like me it makes sense.

The functionality that we’ve come to expect from a blogging engine has grown over the last 10 years. Blogs began as a Web Log – a collection of simple static web pages. At at some point clever enterprising developers moved the content to data stores, thus the birth of the blog engines. Once we had the content stored in a database we needed some sort of admin control panel to provide for adding, updating and deleting. Then we added comments and pingbacks and trackbacks. Contact forms became a necessity. We added RSS so all our friends will know when we post a new article. Someone decided a good blog engine should have built-in analytics. We began using our blogs to host our kids’ pictures and our recent word docs, resumes and other files so the engines began providing file management and slideshow functionality. And then came the birth of “flare”: my last 6 pics on Flickr, and the 4 videos I liked on YouTube. In the past couple of years we added “follow me on Twitter and here are my last 10 tweets”. Over that same time we also added more and more CMS-like features to our blogs.

However, I’ve noticed a  trend to use less of a blogging engine’s functionality. It’s not that we no longer want all the functionality I mentioned above, it’s that we don’t want/expect it to all come from the blog engine itself. In our brave new world of “SOA”, “SAAS” and “Cloud Computing”, buzzword bingo aside, we have come to realize that it is best to focus on core functionality and leave the fringe pieces to someone else who focuses on that as their core functionality. In other words, we are choosing “the best of breed” (for those who have not gotten their fill of catchy buzzy phrases).

Need some examples?

1.  Google Analytics – I’ve been using this for so long to track activity on my sites that I cannot even remember when I started. 

2. Disqus – I don’t need my blog engine to provide commenting functionality, I’d rather use Disqus. It also handles trackbacks and catching any “social” mentions of your post.

3. Kontactr – I recently switched my home page (a primarily static html/JavaScript page) to use Kontactr to provide a contact form.

4. Twitter, Foursquare, etc. widgets – I can use JavaScript to query most social networks myself rather than depend on a widget provided by my blog platform. You can easily find a JQuery Plugin for nearly anything by doing a simple search.

5. Windows Live Writer – I don’t need my blog engine to provide create/edit post functionality for me. I can do everything I need with Windows Live Writer.

6. Feedburner – handles distribution of my syndication feeds rather nicely.

7. Flickr, YouTube, SlideShare and DropBox – easily handle hosting all my photos, videos, presentations, files, etc.

I am sure both we can think of more examples.

What functionality is missing that still requires a bull-blown blog engine? Content and version management? How about using a combination of Git and DropBox that will handle deploying content updates for you as well as easily handling versioning. What could be better than having a real version control system?

You could get rid of your database by using static files to hold each post’s content. Either use the Git/Dropbox approach or have a WindowsLiveWriter endpoint that would convert sent content to static files.

If you hand off all the above then what do you have left? You really only need some type of routing engine to serve up the static content based on the requested Url and something that wires up the configuration for the 3rd party stuff mentioned above. That does not really sound like much of a blog engine to me, in fact I’d suggest that it could mostly be done with JavaScript and maybe, just maybe, a few lines of server-side code.

Dan Hounshell
Web geek, nerd, amateur maker. Likes: apis, node, motorcycles, sports, chickens, watches, food, Nashville, Savannah, Cincinnati and family.
Dan Hounshell on Twitter