I have long been planning to release a new revision of my personal website. The site houses my blog and constitutes my primary web presence. I was using Wordpress, but I am trying to explore new possibilities for website construction. For this reason, while I am fond of much of the work being done on open-source content management systems such as Wordpress and Drupal, I am now using a custom web application to power my website and I will likely reuse code and functionality developed here for other website projects.

Primary challenges:

  • minimize the amount of software being used
  • decrease page loading times
  • incorporate more content sections
  • provide a general-purpose home page
  • control all aspects of logic and presentation

Replacing Wordpress and Thesis

I was using Wordpress and Thesis to power the site. While they are excellent for many sites, my goals for this site require functionality different from that needed for a purely blog-driven site. The ability to implement only the specific functionality necessary for the site is appealing and empowers great flexibility and focus. The code and markup is much simpler now, so incorporating gradual changes is much simpler under the custom unified codebase.

Decreasing Page Loading Times

This site now features a database-driven application that queries the database only when the build system is initialized for the purpose of generating a fresh set of cached template files (which happens whenever an update is made). Content is precomputed and simply served from the filesystem, reducing resource requirements for viewing pages.

Interacting remains available through an asynchronously loading JavaScript file that provides the commenting system, Disqus. The database system is MySQL, the web server is Apache, and the programming language is PHP. PHP is only interpreted for the build script and for the two contact forms.

Incorporating More Content Sections

The current version of the site features a new library section for books. Other sections are planned, but the primary system for incorporating multiple types of content has been implemented.

Custom scripts are used for all of the primary site sections, offering a high level of granularity for controlling the functionality of individual sections, and reducing site overhead by passing requests to a number of smaller scripts rather than forcing all traffic to be redirected to go through index.php.

Providing a General Purpose Homepage

I am using a grid system built on top of the 960.gs CSS framework developed by Nathan Smith for all of the page layouts. For the home page, short summaries of my interests and recent happenings are presented alongside links to recent content items in the two primary sections: blog and library.

Controlling All Aspects of Logic and Presentation

I began with a blank slate for this project; all of the code is custom and the design is my own (much to the chagrin of my designer friends). For the PHP code, I only reused the Mail library from PEAR. The markup incorporates the 960.gs CSS framework. I worked with TextMate for all of the markup and coding, using Photoshop only to create and splice images for the visual appearance.

I plan to expand upon this basic site and incorporate lessons learned on this project in future sites and applications.

Please consider leaving a comment with your thoughts on my new site.

If you would like to work with me on a web project, contact me.