Back in the days when WordPress introduced plugins and themes, a centralized repository was the best thing imaginable. However, the WordPress ecosystem has evolved and a single repository no longer fills all needs. Is it time to open the doors for commercial repositories?
Today, many quality themes are commercial. Plugins are following this path. What started as single brave plugins is becoming a trend.
And, it turns out that people are happy. As long as paid code helps save more than it costs, everyone benefits. Webmasters work with more reliable code, authors make a decent living and WordPress turns from a fun project to the de-facto CMS of choice.
What we're missing is a convenient way for WordPress Admins to search, download and upgrade commercial plugins and themes.
My vision is to:
- Agree on a common method for connecting alternative repositories to WordPress
- Build a plugin that hooks to the Plugins and Themes Admin pages and includes these repositories
- Push to make this plugin a part of WordPress core
Let's see what all this means.
Adding Alternative Sources to the WordPress Admin
Most commercial code I'm seeing already hooks to the WordPress Admin and can push notifications about new versions. WPML does that too.
While this approach works, it suffers from very significant problems that we're already seeing ourselves:
- First install must be manual – this is a real problem for some clients.
- Each plugin and theme handles these upgrades a bit differently. When we do that, we confuse our clients.
- We each add similar code for the exact same purpose. This leads to memory waste and bloat.
- New authors need to invent the wheel. It's just a waste of good resources.
By unifying the search, install and upgrade process, we'll save ourselves all these problems. Clients will enjoy a better experience and authors will have less work on their hands.
To do this, we need to create a single plugin that hooks to the Plugins and Themes admin section. It comes pre-configured with a list of alternative sources and users can add others themselves.
Each repository will accept user-credentials. This way, we can deliver the correct downloads for paying clients, based on what they purchased.
It all Starts with a Search
The first job of the new plugin would be to allow users to search in all repositories. When users go to the Themes page and look for "mobile apps", they should find a theme whose description includes these keywords.
You'll see where the theme / plugin comes from, if it's free or paid and the price.
Install, Notify and Upgrade
Once you've purchased a plugin or a theme, it will appear in the list of plugins available to you. Just click on the regular Install button and WordPress will take care of the rest. We know how to hook to this function, so it's just a matter of providing the correct repository URLs.
When upgrades are available, they will appear exactly like other plugins appear on WordPress. When we have new versions, there's no need to take over the Admin bar. We should stick to the standard notification system, which WordPress keeps refining from one release to the other.
However, we can add our own reminders there. For example, if you're selling a subscription-based theme or plugin, you can add a reminder that will show up in the same place. This will draw attention to the fact that some action is required.
Did Anyone Say "In-App Sales"?
If you made it this far without thinking about In-App Sales, let me try to interest you.
When I find something I need from the new Plugins and Themes Search, I'd like to buy it straight from there. I don't want to leave the CMS, go to a different site and start my search all over again. I'm already there, with my credit card in hand, just begging for someone to take my money and deliver my purchase.
I want to see a big Buy Now button, next to the disabled Download. When I click on it, I'll be happy to enter my details and complete the purchase. Then, I'd be really thrilled if I can download the bloody thing and start playing with it.
It's not very difficult to build as long as we agree on some basics. The purchase itself can be done on our server, via a frame. All we need is a way to display these purchase frames so that they integrate with the site. We should make sure that when purchases complete, clients have immediate access to what they bought. Most of us do that today anyway.
I Want to Give Back to WordPress
We can do all of this by ourselves. However, when the time comes and this becomes a part of WordPress core, I'd like contribute a certain percentage to the WordPress project. Whenever WordPress helps me sell, I want to repay by contributing to the project. I'm sure that the extra income from hundreds of plugins and themes can boost WordPress to even greater heights.
What We're Building
Just to be clear, the intention is to allow theme and plugin developers to set up their own repositories, and let WordPress users connect to them in a natural way.
Users will know that they're looking at code that comes from different places. They can choose which sources to include in their listing.
To facilitate this, since we're all using WordPress sites, we'll create two plugins:
- One that sits on the user site and connects to different repositories
- One that authors can run on their servers, enabling their sites to work as repositories
What do you think?