For the past 20 years or so I’ve been creating websites. I’ve made all sizes of websites: personal ones, sites with more than a million SKUs, full order processing, whatever was needed for that customer. Over 20 years people have asked for a lot of advice on how to build sites, I even wrote a book about it. I thought it might be helpful to write out my thought process regarding creating a site the easy way.
The house metaphor
When describing a website I use a house as a metaphor, it could be any building, the key thing is that it gives people a frame of reference easier to conceptualize.
- foundation |* server stack
- frame | HTML
- interior design | site esthetic
- front yard | Advertising, SEO, PR
- back yard | content
Foundation | Server Stack
The foundation of a house provides a stable base to build upon. Frequently it does such a great job people forget it’s there. For most small web sites this foundation is maintained by their hosting company and invisible to them.
Stack in this case means a stack of servers – those computers that the website runs on. There are typically 3 main parts to the stack: web server, application server, database. These can be on a single computer or on ones dedicated and tuned to that purpose. The web-server needs to be fast at sending files over HTTP. The application server fast at processing the code the site runs on. The database needs to be fast at looking up data.
There are several different combinations of creating this stack, each with different software to use and load configurations. The most common is called LAMP.
Why you care: you probably don’t, and unless you start to have a large volume of users you don’t really need to know.
Frame | HTML
Built on the foundation, a house has a front door (home page), and some rooms (site sections). If there is any common denominator for a house it’s a colonial, we call it a three over three or a five over five. The layout is like this; when you walk you see a staircase leading up to the bedrooms and a hallway to the kitchen. To your right and left is a living room and a dining room. This layout is good enough most of the time.
In the nineties I build a lot of sites coded by hand. There were some visual software tools, but they did not produce optimal HTML. We realized that creating pages one at a time is not the best use of people’s time. A Content Management System (CMS) is a common solution to manually creating pages. There are lots of choices here as well. The most common are WordPress and Drupal, they are both open source and free to use.
WordPress is the five over five of the website software world. It also has the largest base of users for any CMS, it can scale, secure, and as easy to use as any CMS I’ve ever tried. For me this ment leveraging the huge amount of work done on the WordPress platform. For a hosted personal website, it’s hard to beat:
- Easy to use
- Flexible in setup and easy to add content
- Lots of design options (literally infinite, but that’s overwhelming)
- Lots of plugins to extend it’s base functionality
- More users than any other platform (which, in the open source world means a reliable base of developers)
- Lots of ways to get support
- High end sites use it: TechCrunch, Best Buy Mobile, BBC America, to name a few. Able to support huge scale
Why you care: This is what we make the rooms in – an easy to use way to create a flexible website – it’s the first and largest choice when it comes to making a website.
In the near future I’ll write the second half of this post, please feel free to comment and give me your opinion. Do you like your CMS?
* the pipe symbol ‘|’ is the key usually above the return or enter key on your keyboard shifted is programer lingo for ‘or’