WordPress Theme Development: Custom versus Commercial
WordPress theme development and design is quickly becoming one of the most popular forms of web development. Whether you’re building a custom theme for a client’s website or designing a theme for widespread distribution, WordPress theme development is one of the most sought-after skills in our industry currently.
As a freelance web designer specializing in WordPress, I spend roughly half of my time designing themes to release as commercial products through my company, ThemeJam. The rest of my time is spent building custom themes for clients through my consultancy, CasJam Media.
In this article, I will break down these two avenues of WordPress theme development and discuss how you, the designer/developer, might approach each situation differently.
For the sake of easy labeling, I’ll refer to each as follows:
- Custom Theme: Refers to a theme designed for a client or personal project.
- Public Theme: Refers to a theme designed for distribution as a commercial product or free download.
Getting the Gig
How does the task of designing a WordPress theme come about?
If it’s a custom theme project, the job may have come about in a variety of ways. Perhaps it’s for a client that hires you directly. Or you may be working for an agency or acting as a sub-contractor. Perhaps it’s a custom theme design for your own personal project, like your portfolio website or personal blog.
The one thing that all of these scenarios have in common is they come with a set of defined project requirements. Your job is to deploy a custom WordPress theme that delivers on these project objectives.
Designing a theme as a commercial or free product? There are several ways to this:
- Submit your theme as a free download in the WordPress.org themes directory
- Promote and sell (or give away) your themes through your own website
- Sell your themes through one of the popular theme marketplace sites like Mojo Themes or ThemeForest.
The key difference between a custom theme and public theme is you’re designing for a wide range of users who will use your theme in a variety ways. Your job is to walk a balance between functionality and flexibility while ensuring a smooth user experience.
Who are the consumers of your custom or public theme?
Designing a theme (or any site for that matter) for a client begins with a careful analysis of their target audience. You want to analyze whom they are marketing to (age, gender, interests, industry, location, etc.). You also want to fully understand your client’s business goals and how they can be achieved through a WordPress-driven website.
In addition to designing for your client’s target audience, you must also consider the needs of the client who ultimately will be the one managing the site via WordPress. Is your client web-savvy? Have they used WordPress before? These things may affect the way you set up the admin side of your custom WordPress theme.
Designing a theme for public release requires a very different approach when considering the intended audience. This is mainly because you really have no way of knowing who the audience is. Consumers of your theme come from a variety of industries and they will deploy your theme in a variety of ways.
The general rule of thumb here is to design for universal appeal. You want to keep things flexible and open-ended so that consumers will be able to tweak your theme to suit their specific needs.
Even if you’re designing a niche theme, such as a WordPress theme for a wedding blog, you still want to be sure that it will appeal to a wide audience within that niche.
Lastly, you should construct your theme with both developers and non-developers in mind. A large portion of your theme’s consumers will be web developers seeking to use your theme as a basis for their customizations.
Make things easy for developers and they’ll come back to your themes for all of their client’s websites!
The rest of your theme’s consumers will be non-developers, so your theme must work flawlessly out of the box without technical issues.
What things about the design of a WordPress theme do you need to take into consideration?
When designing a theme for a client, you can custom-tailor every detail to their specific requirements. Every design decision you make should serve a purpose related to your client’s goals and how their audience will use the site.
You need to create a layout that frames and presents their content in the best way possible. You have to conceptualize the flow of information through the site and implement theme navigation elements accordingly. In this sense, you’re designing with very specific guidelines in place.
But there are some creative freedoms at play here as well. For example, you can explore and develop much nuanced styles and treatments that speak directly to your client’s audience. You can try very specific typography choices using a service like TypeKit, which is a luxury not usually available when designing a public WordPress theme.
Then you have several rounds of client review, revisions, and sign-off. The extent of this process can vary depending on many factors ranging from contractual agreements to levels of company bureaucracy on the client’s end. Sometimes it’s a painless process, sometimes we tear our hair out trying to satisfy a client from hell (we’ve all been there).
The thing I love most about designing themes to release as products is the design process itself. There is no back-and-forth with a client and no contractual "sign-offs" involved—things that often add a lot of stress to the process. I get to run with what I think are my best ideas and what users will find most useful.
That’s not to say the designs are not impacted by user feedback. I like to ask for design feedback via Twitter. I also take into account which design approaches translate into higher download counts and sales.
Without a doubt, you can’t go wrong with a clean and simplified design approach. This makes for the most universal appeal.
It’s also a good idea to take various forms of content into account. The design should be flexible enough to accommodate a text-heavy blog as well as a multimedia-heavy (image/photo and video) one.
I also like to make several design features optional, meaning the user can easily enable or disable them via the theme options.
In addition, I often package several color options with theme, which are activated via distinct CSS stylesheets.
Development and Features
What are the differences in development processes and feature specifications between a custom and commercial WordPress theme?
The nice thing about coding a WordPress theme for a specific client is that there are few unknown variables. You likely know where the site will be hosted, which version of WordPress they’re running (hopefully the most recent), what type of content will be managed using the theme, etc.
Generally speaking, theme options and multiple widget areas are not as important when designing a custom theme for a client. Sure, a widgetized sidebar or footer might prove useful, however, sometimes this can cause more harm than good.
Depending on your client’s comfort level, it may serve them better to hard-code certain elements that won’t be changing very often (such as the primary navigation menu). This can protect against potential damage done by a curious client tinkering with the settings.
Other functionalities (such as contact forms) can often be achieved through the use of a plugin. Working for a single client, you’re able to implement a plugin of your choice and ensure it integrates seamlessly with your theme.
One of the most difficult things about developing a WordPress theme for mass consumption is that you must anticipate many different variables. Some web hosts are more WordPress-friendly than others. Ideally, your theme will be compatible with all hosting environments, but some will throw you curve balls.
You also can’t predict which plugins will be installed in conjunction with your theme. It’s impossible to guarantee compatibility with all third-party add-ons, but ideally, it should work with most—assuming the plugin is coded properly.
Clean and organized code should be a given in any web development project. But this is super important when constructing a WordPress theme for commercial release. As discussed earlier, you want it to be developer-friendly. Make it easy for developers to navigate through your code and make modifications. That means thoughtfully commenting your code, employing proper indents, and adhering to web standards.
It’s also a good idea to keep your coding style consistent across all your themes, giving repeat customers a sense of familiarity with your code.
Theme options also play an important role in distributed themes. Things like adding your own logo, configuring a featured posts slider, or inputting Google Analytics tracking code are all useful features to include in a theme options panel. However, I prefer not to go overboard here. You want to meet your user’s needs for flexibility, while not confusing them with too many options.
Supporting your product can be very different for custom themes and public themes.
Many of the client projects I work on also involve a certain amount of consultation and support during both the design process and post-launch.
If the client is not already familiar with WordPress, you may need to provide written documentation or training sessions on how to create posts and pages, manage the home page content, and other content management tasks.
You may also be tasked with installing, activating, and launching the theme on your client’s live website. This may include additional debugging and ongoing consultation.
The benefit here is that you’re only providing customer support to one person or group of people: your client. Once all of their questions are answered, your support duties are pretty much behind you. There may be ongoing (paid) work involved (such as maintenance and updates), but for the most part, the project is complete.
Dedicated customer support is often one of the biggest selling points for commercial WordPress themes. It has become an expectation that if you charge for your theme, you guarantee some type of support. Many free themes also come with a varying level of support from the theme author.
Support can be conducted via a support forum, which is the most likely method for large theme companies.
If you’re releasing a single theme or two on your blog, you might answer support questions in your blog comments. Undoubtedly, some customers will seek personalized support via email, which may or may not be something you’re willing to provide. My stance is I don’t officially offer email support, but I usually try to help out whenever I can. Users and customers appreciate it when you go above and beyond, and it often results in more referrals to your themes.
Don’t underestimate the time commitment involved in offering customer support for a distributed WordPress theme. The more downloads/sales you have, the more support requests will come in. Support can — and likely will — be ongoing over the life of your theme company so be prepared to dedicate a significant amount of time to customer support. For commercial theme companies, support is usually the first thing to consider when building a scalable business.
To a certain extent, you can offset your customer support obligations by providing thorough documentation on using your theme.
In addition, it’s a good idea to have detailed instructions built-in alongside your theme options.
Finally, you must thoroughly test your themes to iron out all of the bugs before releasing it into the wild.
What’s Your Take on Custom vs. Commercial WordPress Themes?
Please share your thoughts on custom vs. commercial themes.