Skip to main content Accessibility Feedback

My three principles for building for the web

When I build websites, there are three core principles that are the heart of every project:

  1. It needs to work on every device.
  2. It needs to work for everyone.
  3. It needs to be insanely fast.

I won’t take on a project or work with a client if I can’t fulfill all three of those principles. Let’s look at each of them in a bit more detail.

1. It needs to work on every device.

This one sounds relatively obvious today, when responsive web design is a given for most projects.

However… as the “JavaScript for all the things” crowd marches forward, this principle gains a lot of nuance.

It’s not just building sites that work for every new, cutting edge smart device. It’s all devices.

It’s that old Windows XP machine with IE8. It’s that old Blackberry you still use because, hell, it works. It’s some smart but underpowered new web device that hasn’t hit the market yet.

Building websites that work on every devices—even the old, underpowered, unsexy ones—ensures that your sites will have far more longevity for new devices that haven’t been created yet.

What does this mean in practice?

In a phrase: progressive enhancement.

It means that if JavaScript isn’t available, or if your JS file fails to load or has an error, the visitor can still do the things they came to do. Adding items to a cart or checking out and making a purchase still work.

All the content is still visible and usable. Ugly, perhaps. Less interactive. But usable.

This is just good design. A more fault-tolerant website is a more successful one.

2. It needs to work for everyone.

On the surface, this sounds the same as principle #1.

But a site that works on every device is a bit different than one that works for everyone. The latter is built with users of all capabilities in mind.

Links are sufficiently large and well spaced that people with fat thumbs (like me) or neuromuscular disorders can still tap them. The font is large enough that people with bad eyes (again, like me) can read it.

The site can be easily navigated by keyboard or screenreader. Critical images have alt text for the visually impaired. Active links have visual indicators for keyboard-only users. Links in general are distinguishable from the text, even for people with colorblindness.

The web was built for everyone. The sites we build need to honor that.

3. It needs to be insanely fast.

This is, in some ways, a sub-principle of #2.

Not everyone accesses the web from a fast device or a fast internet connection.

Some people live in areas where high-speed internet is nonexistent. Others use their mobile device exclusively, with all of the spotty coverage and hardware issues that come with it. Some people are just on an older computer that runs slow.

A website that’s too slow is a website that’s unusable for a significant number of people.

How fast do I think a website should be? Around 1 second to start displaying content on a cable connection, 3 seconds on 3g, and 5 seconds on an EDGE network.

It’s absolutely achievable, even on inexpensive shared hosting and a “bloated,” open source CMS. I do it all the time.

The common thread

The common thread among all three of my principles for building for the web: the web is for everyone.

Building a website that works on any device, for any user, allows you to reach more people and, for businesses, realize more profit.

These are idealistic goals, for sure. But they’re also practical.