Part 2/Chapter 4

Guiding Principles

It’s no surprise that WordPress’ founding developers had so much in common. Matt and Mike liked b2 because it was simple, hackable, and usable, and WordPress needed to be those three things too. When they forked b2, Matt and Mike didn’t just inherit code, they also inherited b2’s ideals — ideals enriched by fundamental beliefs about software that each founder embraced. These founding philosophies informed much of WordPress’ early development, became underpinning philosophies for the project, and still inform decision making about software development and community building today.

In WordPress’ nascent state as b2, the focus was on making things as easy as possible for all users, and particularly for those new to the platform. On, Michel kept a development log where he recorded his thoughts about developing b2. It was often just a list of things that he’d done that day, but some of the things he mentions provided insight into who he saw as b2’s user base. For example, when he talked about creating a templating system, he said that he wanted to “make templates customizable by Joe Newbie,” in other words, a templating system that any user could customize, regardless of background.

One key feature of b2 was the install script, written by a b2 contributor, which made installing the software easy. This contrasted with the most popular blog platform at the time — Movable Type — which was considered difficult to install. A simple install script meant that people without much technical knowledge could install WordPress. By the time b2 ceased development, it hadn’t reached the point of a seamless install, but the code and the intent provided the groundwork for WordPress’ “famous 5-minute install.”

Allied to this focus on usability was a commitment to simplicity. Creating simple software means providing users with only exactly what they need to get the job done. Software is a tool, and like any tool, the simpler it is, the easier it is to use. By keeping things simple, a user can figure out the software from the interface itself, with as little external instruction as possible. The way to use software should be self-evident from the interface.

When Michel started b2 development, he made the decision to focus on blogging functionality. He didn’t want to create a CMS, he wanted to create a blogging platform. This meant that all of his early enhancements focused on simple tools for getting content on the screen. This focus on blogging ensured that, particularly in the early days of development, the platform remained simple.

Matt’s early focus was on web standards. He wanted to ensure his own website’s forward compatibility — that it would work in future browsers and devices. Jeffrey Zeldman’s Forward Compatibility: Designing and Building with Standards was a major influence on Matt. Zeldman’s book advocates creating standards-compliant websites that work across browsers and devices. Even prior to forking b2, Matt had converted most of his site to XHTML 1.1.

This meant that many of Matt’s first WordPress commits focused on HTML semantics and web standards. After setting up the CVS repository (the version control system the project used at that time) and uploading the files, Matt made basic semantic changes to the index.php file, fixed whitespace issues, and converted <div> tags into heading tags. Using correct tags to generate proper headings reinforces the content’s semantic meaning on the page.

In a post just after WordPress 0.7 launched, Matt outlined his thoughts on the future of WordPress on He wrote, “one thing that will never change is our commitment to web standards and an unmatched user experience.”

Simplicity, usability, and web standards — these are principles that guide WordPress development to the present day. Over time and as new people join the project, new axioms become a part of the community, augmenting and strengthening these guiding principles. Taken together, these are guiding principles for a user-first focus. Perhaps this came about because Mike and Matt were users of b2 who blogged before they started developing blogging software. They started developing blogging software only because they were interested in making improvements to their own blogs, and as they made improvements, they were drawn further into the development community. But they remained, particularly in the beginning, software users, which meant that while they were developing software, they retained an empathy for others. This was also true for other developers who became involved with the project. Developers didn’t get involved with the project just because they felt like working on blogging software. They got involved with the project because they used blogging software. They had installed the software for their own blog, found that they wanted to change or improve something, and contributed those changes to WordPress.

What ensures that the user-first approach continues is a decision made prior to even the fork of WordPress, a legacy that the community is either sustained by or stuck with, depending on your perspective. That legacy is the GPL, the software license that Michel distributed b2 with, and it remains WordPress’ license to this day.