“I used to be uncomfortable using commercial themes for my web clients,” I heard a speaker say at a developer conference a few years ago, “because I feel like I’m cheating.”
There were several faint nods of agreement and guilty averted eyes throughout the room. Do some developers think it’s cheating because they’re not writing all of the code but rather just some customizations, finishing touches on top? And their clients are actually paying them for that? If only they knew!
In fact, that’s like saying why should I pay a photographer when they’re “just taking pictures”. Or why should I pay a real estate agent when I could do it myself. After thousands of dollars, hundreds of lost hours, a few missteps and hopefully no lawsuits it is easy to see why. Doing it from scratch may be fun, and is a fantastic way to learn, but it is rarely – no, never – a good idea before a paying client when you’re professional reputation is on the line.
Having installed many commercial themes built by different developers with different styles, I have started to notice how things work and where they sometimes fall short. Looking at a developer’s codebase – his or her baby – is a look into how their brains organize things.
Do you put everything into object classes? How many different files containing partial code? How many file directories? How many esoteric edge cases do you account for? That last part depends on whom one is coding for, and what industry one is in.
Commercial themes of all levels of sophistication are great, and should be a starting point on most projects. I have built enterprise sites from bare-bones themes like Underscores, and I have also grabbed fully organized themes targeting a niche. In every case, I have had to code my way out of a pickle that the developers did not anticipate for my situation.
Working on a new theme for this site, I noticed that yes, it is responsive out of the box. Heck, I mean who isn’t these days? Still, as shown below (circled in red) the responsiveness memo never arrived to my iPhone.
The pagination links – the “Older Posts” box, got pushed too far to the right and forced the words to split into two lines. On other pages where it also has a “Newer Posts” box, the mess is even bigger. I swam through layers of CSS, HTML and PHP just to figure out what works based on what I want. Ultimately I decided to remove the box around the words and shrink the padding between them.
This means overriding what the original developers created. It may seem inefficient, writing a set of CSS only to be overrided by something written by someone else. But then, that’s what CSS is for. Customizing a solution by starting with existing tools and thinking about the desired goal is not cheating. On the contrary, it is the only way.
And that’s what it comes down to. Even the simplest, least-expensive, lowest-maintenance sites benefits from the finishing touches and will turn into a bespoke solution when they see the light of day. And that’s a good thing.