Should You Develop a WordPress Site for a Client From the Ground Up or Use … Ekhm … a Helper?

Every designer has his/her habits…

Maybe it’s this one type of shadow effect that you like putting on most sidebar elements.

Or maybe it’s the way you’re separating the breadcrumb links.

Anyway, there’s always something.

But what if we take it much further, and much broader? Namely, should you be using a placeholder WordPress theme when building sites for clients? Or should you start from scratch and build your way up, element after element for each client project individually?

Note. This article isn’t that much about describing “what’s the right thing to do.” What I want to achieve here is just list the technically possible solutions and the pros and cons of each. It’s then up to you to decide which is the one you are most likely to opt for.

Whenever building a WordPress site, you can do it in one of these five ways:

Build a custom theme from the ground up.
Build a theme on top of a theme framework.
Build on top of an existing theme that’s similar to what you want to achieve.
Build a theme using a starter theme like _S.
Create your own starter theme and then use it when building every client site.

Okay, let’s take it from the top:

1. Building a custom theme from the ground up

Let me just admit right up front that I’m not a fan.

Building your own custom theme every single time when you’re working on a client project is an extremely unproductive approach.

Just think about it, you have to start by creating the required directory structure, all the required PHP files, take care of the mandatory WP functions, implement the basic features, make sure that the CSS works similarly on every browser, and myriads of other things.

You might think that clients want to have their websites built from the ground up because that’s the ultimate evidence that your work is original. But on the contrary. What clients really want is quality above all else. And when you’re working on a theme from the ground up, you will never reach the same level of functionality as you would with a framework or with a starter theme.

Okay, so with the cons out of the way, let’s talk some positive aspects.

I can see only two, to be honest:

  • It’s usually easier to implement every design trait you’ve created in Photoshop onto a custom theme than onto themes based on frameworks or starter themes. This is because, with a framework, you have to fit within the mechanisms of the framework itself and can’t create code freely.
  • No learning curve on top of the standard WordPress knowledge. Let’s face it, some frameworks are a bit complex, and learning how to use them proficiently will take some time.

2. Building a theme using a starter theme like _S


The _S theme, also known as Underscores, is what we call a starter theme. What this means is that _S is not meant to be a parent theme of your creation (like it’s usually the case with other theme frameworks), but instead, you’re encouraged to modify the theme files directly and use them as the foundation of your custom theme – in this case, for a client site.

So how is it different from building your own theme from the ground up then?

Well, it does provide a range of functionalities right off the bat. Just to list a few, with _S, you get optimized HTML 5 page templates with minimal elements, a 404 page, a sample header implementation, navigation scripts, well-organized starter CSS file (plus two sample layouts), plus a bunch of other stuff.

In other words, _S gives you a complete and optimized package to start working on your final design/theme.

The downsides? You do need to be fairly confident working with source code and also master the _S’s structure itself before you can use it effectively.

Another downside is that whenever you generate new versions of the _S theme from the official site, there can be some differences due to updates that might have been introduced in the meantime.

Apart from that, this is probably the most versatile way to build a site for a client, in a way that gives you full control over the functionality and the design elements. That is if you’ve already got familiar with the way _S works itself.

3. Building a theme on top of a theme framework

Theme frameworks are the next step up when it comes to finding a way to get other people to handle some parts of your work for you.

Okay, just kidding, but what I mean is that with a theme framework, you don’t actually have to build the whole structure of the site yourself. What you have to do is create a child theme that inherits the elements of the parent – the framework – and then fill in the blanks, ultimately building the client’s site up to its final form.

With a framework, you get a range of useful features and functions that will help you handle the whole project quicker. What you also get is an SEO optimized structure, some custom widgets, and sometimes support and updates too (depending on the framework you’ve chosen).

The downside is that some theme frameworks can be a bit restrictive when it comes to the way certain site elements are created, as well as what you can do with them in relation to your initial Photoshop project.

Getting really skilled at using a framework will take time, but it’s possibly time very well spent, especially if you’re building a significant number of client sites every year. You can go to for a short list of frameworks.


4. Creating your own starter theme and then using it when building every client site

This I would call an old school approach. It’s what we used to do before the age of starter themes like _S.

Nevertheless, the approach does give you a lot of possibilities when it comes to pre-creating features and elements that you always end up using on all client sites anyway. Thus, overall making the whole site building process a couple of steps shorter in comparison to building a site from the ground up.

However, you still have to face the challenges of keeping your starter theme up-to-date with new versions of WordPress, new design and site building trends and technologies (like HTML 5), and everything else that can happen in this large online space.

Using an existing starter theme like _S is probably a better solution at the end of the day. And if you want to have some of your own customizations ready for every client site you’re working on then why not start with a custom-made functions.php file instead?

5. Building on top of an existing theme that’s similar to what you want to achieve

Although some people still try to pull this off, I would say that it’s the lazy man’s approach. And quite surprisingly, it’s also an approach that can take a lot more time than any of the above ones.

That’s due to the fact that you can often end up spending hours looking for the right theme, only to realize that its structure is not as easy to grasp as you’d hoped. So as a result, you spend hours on top of hours to get it looking and working half decent.

Your efforts are much better spent either mastering a theme framework or learning how to use a starter theme.

What else is there?

Granted, all of the approaches above require some level of familiarity with the way WordPress works and with PHP coding in general. Setting that aside, putting a theme together for your client also takes time. And depending on the complexity of the thing, it can put hours on top of your initial estimate.

Hint. Hint. If you don’t want to play around with all this, I invite you to give us a call and let us handle that part of the project for you. All we need is your PSD files and we’ll give you a shiny new theme in return.

But what’s your take on this? How do you go about turning your design into a fully functional client site?

Karol K

Creates content, manages CodeinWP's team of writers and makes sure that every piece of content you see on this blog looks great! / Author of "WordPress Complete" / Professional yerba mate drinker