How my website was built and how I might do it differently today

Print Friendly

Effective January 1, 2010, this site does not use Drupal and instead uses only WordPress.

Podcast of this blog entry

It’s Saturday morning and I thought I would take a bit of time out to discuss how this website is built. It might be instructive for any of you who are thinking of doing something similar, and it will also help me as I consider future changes.

I’ve owned since 1996, but for most of those years there wasn’t much to it, really just a bunch of static HTML pages. Starting in 2005 I decided to do more work to turn it into something useful to me. One of the motivating factors was my mother’s death in October of that year.

Like many families, we had a lot of old photographs but very few copies of them. Therefore, to see my mom’s photo albums, you had to come to my house. I decided that I would start scanning the photos so that I would at least have digital copies I could give to my siblings. Before long, I decided to expand the project and make the photos available online. I tried Flickr for a while, but I eventually decided that I wanted to host the images myself. The result of that was an online album that I wrote in PHP.

In the meanwhile, I had started a blog on Blogger and also had one on IBM developerWorks. I used a feature of Blogger to ftp the blog content over to so that people could read it on my site. I split my personal content so that it appeared on and the IBM “work” content went to developerWorks (dW). I was never really happy with this division of material, in part because I only put a few entries on the personal blog and quite a few on dW. I felt that I was writing the personal blog for about 4 people.

I soon hit the wall with what I could do with processing the blog content on Blogger. I wanted the content to be in PHP files, but the default was HTML. I eventually got that to work. I wanted tags or categories, and Blogger didn’t support them (though I understand they do now). I did very much like the idea of themes and I learned quite a bit about how Blogger used them. Finally, I wanted the full machinery of the blog to run on my own site. Granted this would mean that if went down everything would be down, but I wanted direct control over all the pieces and I wanted them in one place.

Starting with the Blogger theme, I came up with the CSS that described how to format my site. This was fine for the photo album and the few other static pages I had, but I came up with a real problem when I decided to use WordPress to run my new blog. I settled on WordPress after looking at several other open source options.

In that deliberation I always knew that I wanted to use open source. I was willing to have the software written in either PHP or Python, and I explicitly did not want it written in Java, Mono, or anything else. I was going to do the coding and so I got to choose the language I personally wanted to use. It soon became clear that PHP would be the best choice, in part because I was getting intimate with it via the photo album project. From there it didn’t take too long to settle on WordPress. I should add that the website runs on Linux. That was never a question or an issue. There is no way I would have made another choice.

WordPress is a phenomenal piece of software and the number of themes (that is, visual designs) available for it are truly amazing. It does, however, like to be the center of the site. That is, it is easiest if you start with the blog as the main thing you have and then add other static pages into the blog world. This allows you to use your chosen themes consistently throughout your site. In this way it is blogging software with a bit of content management thrown in.

I didn’t approach it this way. I already had a site with a look and feel and I wanted to insert WordPress into that. It took a while, but I was able to significantly modify a WordPress theme so that the blog fits seamlessly into the rest of the site. So I use the WordPress engine for the blog, but it doesn’t control everything. When the WordPress people come out with new releases, it is easy for me to install the new code: everything works with my theme. However, because my theme is so customized, I cannot easily switch it to a cool one I might find elsewhere. Philosophically, that’s not a great thing but technically it is not a problem since I know HTML, CSS, PHP, etc., and can make any changes I want.

Another great feature of WordPress is the plugin, or extension, architecture. This means that there are hooks at various places in the system where you can easily insert code written by others. I’ve come to rely on several of them to provide functionality in the blog. Most recently I’ve started to use a plugin that lets me have polls in blog entries. All the plugins are open source and written in PHP, which means I can modify them if I need to do so. I’ve done that in several cases. I learned a lot about both PHP and WordPress by seeing how the plugins do what they do.

This last year I stopped put entries directly into the dW blog, although excerpts are syndicated there when I remember to do so. All my content is now controlled and stored on

Finally, let me mention that I use Mint to keep track of how the site is used. It too is a really beautiful piece of software. It is not open source, but it is written in PHP and the source code is therefore readable. At $30 it was a very good investment. It has a plugin architecture and you can extend Mint using many different “peppers.” These are usually open source.

book cover

Now that everything is up and running, I’ve started to think about how I should evolve the site in the future. It does bug me that it is not so easy to change the theme I use. I do hack the CSS and layout with some frequency as I learn how to make the site nicer looking and more navigable. One option is to switch entirely to a real content management system with blog support like drupal. It is open source and written in PHP, has many themes available, and has a plugin architecture (they call them “modules”). It would also allow me to more consistently handle the other content such as the essays and lists of recommended reading. I don’t think it would be that hard to change my photo album code into a drupal module.

The problem with this approach is that I really like WordPress and I have 1200+ entries there. I would have to do redirects for all of them so that links from Google and elsewhere would continue to work. I have not done extensive research into comparing the drupal module support compared with the WordPress plugins I use. I suspect that I would find several similar things, but not everything. If I were not dealing with an existing site, I would probably build a new one from scratch using drupal.

I don’t mean to sell WordPress short since I really do love it. I will most likely stay right there but make the following changes over time:

  • Change the look and feel to freshen up the site. In so doing, clean up some of the CSS to make it easier to work with in the future.
  • After the next major release of WordPress (or the subsequent bug fix), change all the extra non-photo album pages to live under WordPress’s control.
  • Investigate what I have to do to allow the photo album to more closely cooperate with WordPress.
  • Switch over to a bona fide WordPress theme.

book cover

I have no timeline for this and none of it is urgent. I am getting increasingly annoyed with my current hosting provider, so I might use the excuse of moving to a new one as motivation to get some of this work done sooner rather than later.

The options to use open source to build powerful, functional, secure and beautiful websites are truly wonderful these days. My requirements are fairly light. If I were building a business site that had transactional requirements I would almost certainly bring Java and JEE into the picture, but I would still try to use PHP above that.

One of the reasons that I have this site is that I want to experiment firsthand with new software and new technologies. Personally, I’ve been quite happy with what I’ve learned, but I also realize there is much more I could do if this wasn’t a spare time project!

Disclaimer: as always, these are my personal views about my personal site, and do not necessarily reflect what my employer thinks, builds, sells, or services.

In case you’re curious, I wrote this entry in the gedit editor under Ubuntu and used Firefox to preview it. I then used WordPress to publish it to my Linux-based site.

Also see: Building another website


  1. Whatever you do, just remember that the lure of ‘Open Blog’ is your content, not it’s beauty. Its dynamic width format makes everything easier to read and fit, and with your productivity, any new design would need utility above all else, i.e., keep entries easy to read, link to, and respond to.

    And isn’t it predictable how hosting companies eventually go sour? I finally had a couple of rotten experiences with mine this year after five years of perfect service. Finally, I’m spending the weekend with Ubuntu and am wondering if it’s enough to keep me from upgrading to Vista.

    Maybe. The good thing is I have time to test it out before the next system upgrade next summer.

  2. It may also be worth saying that you can get Ubuntu Linux from Amazon
    just the same as you can get Microsoft Windows Vista from them

    We know how Amazon make their money; providing the widest and fastest distribution channel on the planet. Loads of businesses have had to rethink their business models as a consequence, same as when Wal*Mart show up in a mall; but they’re good for consumers, and we’re not going back to the old days.

  3. Bob,

    Like you, i’ve decided a while back to host everything on my site ( as much as possible. I’ve secured ample bandwitdh and space from a reputable reseller, and then tried potentially every possible permutation of blogging and photo gallery tools. Since I have Windows, Linux and OS X systems, I can tell you I went through a lot of ‘interesting’ discoveries and suffering along the way…

    I think your choice of WordPress is sound. I’ve actually migrated (a few months ago) from WordPress to Drupal (with 600+ entries), only to come back running after a sour experience (I’m still recovering from that nightmare). In Drupal, everything is just more complicated, starting with the need to understand and build your own taxonomy. In addition, the state of 3rd-party plugins is not as mature as on the WP platform. For example, the integration between the various major photo galleries was far from user-friendly, requiring you to hack your way through, with little assistance provided. Drupal might be a good choice for some cases, and IBM did choose it for various projects, but for a one-man operation, it’s just overkill.

    In the end, I’ve decided that life is too short, and my setup has become very simple so I get back some time in my life: WordPress powers my complete site and ZenPhoto (http:/ is fully and seemlessly integrated into my WordPress installation for both post/page edits and through my navigation structure (you can see it in action at I like it’s clean and simple interface, and the fact it uses plain o’le css and a simple theming system for a non-programmer like I.

    BTW, totally unrelated, but I’ve used your blog/site to demonstrate to other IBMers (in internal conferences and trainings) how it can be done and the kind of impact one can have through blogging… keep it up!

Comments are closed