Saturday, June 19, 2010

Should you use a template?

I absolutely think that beginner web designers should use templates. And by templates, I mean something that you might buy off ThemeForest or other template selling service. Here are a few reasons why:

* Tweaking = learning. Templates need to be changed/altered/tweaked. That’s the whole idea of a template. When a beginner designer does those things, they are learning how code works. Tweaking WordPress themes is exactly how I got into web design.

* Quality. When the site is “done”, a beginner will have something they are likely very proud of. Probably more proud than if they started from absolute scratch and ended up with something very basic (or downright ugly). That will provide good momentum for sticking with it.

* “Real world.” Assuming the template is well-coded, the beginner will be looking at a good amount of quality markup and well organized efficient CSS. That is nice head-first dive into real world front end design, as opposed to starting with the kind of markup an intro to HTML book might start you off with.

But what if you aren’t a beginner?

If you are a professional designer (as in, a client came to you with web needs and you are going to build a custom site for them, and you are going to charge them more than a few hundred dollars) then using a template is, pardon me, bullshit.

The job of a designer is to carefully consider the needs of the client and the constraints at hand and create a solution. In my opinion, that includes every pixel on that site. If some of those pixels were recycled from somewhere else, then they weren’t created with the intention of solving that clients needs. I’m not saying you can’t use find/reuse/recycle things you find elsewhere, I’m saying that when you do, you ought to be manipulating them and heavily considering how they integrate into the vision for the site.

What do you think? Am I full of crap?

For you developers out there, do you feel similarly? I think the opposite might be true for developers, where recycling code that has the exact same functionality is probably the right way to go.

Source :