Last week, we released our first plugin in the official WordPress respository, CPO Shortcodes. The plugin itself is nothing less than our entire shortcode collection, which took over two years to get to the point where it is now. Before becoming a plugin, it came bundled within the core framework of our premium themes, so essentially it was a premium feature. The plugin, however, is completely free, and anyone can download it from their WordPress dashboard. No upsell, no locked features.
So, why release a premium feature, which is a big part of our product for free? We wanted to take this opportunity to explain a bit the rationale behind this decision, and the usage of WordPress in general.
Separating Content From Design
It has been said many times that themes should only include functionality that manipulates the design of a site. That means any feature that give you more options to add content should not be present in a WordPress theme. The official WordPress review team that does all the hard work approving themes for the official repository is particularly serious about this. They will reject any theme that exceeds even a little bit in this regard, as it’s considered plugin territory. This is the reason why our Intuition WordPress theme lacks any widgets or shortcodes– it simply cannot have them in order to be accepted.
Outside the official WordPress site, however, things are quite different. Many themes that come with a lot of features often embed them directly onto the theme, without providing any other standalone means of using them. If the user decides to switch themes, then many of those awesome features will be gone or stop working. In the case of shortcodes, they tend to leave a lot of junk in your posts since they are no longer parsed.
This lock-in effect has spread quite a lot, going as far as prompting some well-known voices in the community to speak up against it. While it is nice to have themes packed with really awesome functionality, it is important to keep in mind the best interests of the user.
Preventing Lock-In In WordPress Themes
Solving the lock-in problem is fairly simple: separate all functionality that affects the content into a WordPress plugin. That way, users that decide to change themes can do so without worrying about their WordPress installation breaking.
We like to think our themes follow the spirit of the WordPress community. Still, for a long time we have been guilty as well when developing our themes, both premium and free. Therefore, we have begun moving a lot of the functionality that came with our themes into separate pieces of software.
Keeping everything modularized not only helps the user– it simplifies things for the developer as well. Since the codebase becomes split into multiple, smaller parts, it can become easier to maintain it. This is one of the first benefits we noticed when decoupling our shortcodes from the main framework; things became simpler, leaving less room for error and forcing us to go for a more atomized design.
Separating our shortcodes is the first step towards making our themes more compliant with the WordPress guidelines. As time goes on, we’ll be looking towards making our themes more independent from the content. The takeaway here is that a product should be more focused on the end user, rather than trying to force a customer into something it doesn’t want.