Easy Digital Downloads is an e-commerce plugin for selling digital products through WordPress.
It is a free plugin hosted on WordPress.org, yet it is also fully monetized and brings in a substantial yearly revenue.
This article is going to look into some of the challenges my team and I have faced in building a sustainable business off of a plugin that is not only open source, but also given away at no cost.
Our Revenue Model
Before getting into some of the challenges we have faced – and are continuing to face – let’s briefly walk through what our revenue model is.
There are two revenue streams for the plugin:
- Selling add-on plugins that provide additional features
- Selling priority support access for faster, VIP support
The majority of the business’ revenue comes from add-on (extension) plugin sells. The revenue generated by priority support subscriptions counts towards the revenue as well, but the funds generated are sent directly back into the plugin by paying support technicians.
Encouraging Users to Upgrade While Still Providing a Well Balanced, Fully-Featured Plugin
One of the primary challenges we faced with commercializing via the premium extension model was finding the balance between a full-featured core plugin that users could use as is, and building the right features as paid upgrades that were important enough for users to purchase them.
If the core plugin was made too powerful, the majority of users would have no reason to ugrade, rendering the business model useless. Put too many features into paid upgrades and users will feel that the core plugin is intentionally crippled, creating a less than loyal user base.
From the business’ perspective, there is absolutely nothing wrong with highly-requested features being made available as a paid upgrade, but users will often feel cheated, resulting in negative reviews that hurts the adoption rate by future users. Yep there is also absolutely nothing wrong with not wanting to give too much away for free – after all, any code at all that is given away for free is already enormously generous.
Let’s look at a real example of a feature that we chose to make a paid upgrade but many users feel should be included for free.
Manual Purchases is a $15 extension that adds the ability to manually create purchase records. Anyone that has run an e-commerce store will probably agree that having the ability to manually create purchase records is very important and a task many need to perform on a daily basis.
On numerous occasions, we have had users complain about Manual Purchases being a paid upgrade, since they feel it is an integral feature of the plugin, thus removing it from the base plugin is “crippling” it.
I completely agree that making such a feature a paid upgrade is annoying, but I also happen to know that the necessity of the feature encourages many, many users to purchase the Manual Purchases extension. That means that the Manual Purchases extension has considerable value to the business, and it is our goal to create a sustainable business.
When it comes to integral features, discovering the balance between what should and should not be a paid upgrade is difficult when using a paid add-on model.
Charging for Support
When I first launched Easy Digital Downloads (when it was just me), I tried to offer two kinds of support:
- Very basic questions about the plugin (pre-sales). This was free.
- Paid support for everything else.
The idea was to not offer any technical support to anyone that was not a paid customer. If a user needed support, they could sign up for paid support, or they could purchase an extension, which included an automatic 30 days of support access.
On paper, it seemed like a very reasonable approach. Users already received a completely functional ecommerce solution for free, so asking users to pay a fee in order to get technical support shouldn’t be a problem.
It turned out that this model didn’t work at all for several reasons:
- How do you handle users that encounter problems due to bugs in the plugin? As this happened several times while this model was in place, users felt very disinclined to pay for support in order to get help with a bug in the code.
- What if the user’s issue only takes a few seconds to answer? Should they still need to pay for support? Right or wrong, many users were turned away because of this. When users feel slighted by support, they are more inclined to leave negative reviews, which only hurt the reputation of the plugin and the business.
- All extension purchases came with 30 days of priority support, regardless of the price of the extension. This meant that an $80 extension gave the same level of support as a $6 extension. It also meant that users could purchase a $6 extension and get the same support access as they would get with a monthly support subscription. This was primarily a failure in my implementation of the support model, but it was still very clear that it would not work in the long run.
Getting Too Big, Too Fast
Experiencing rapid growth can be exceptionally challenging. When a user base is small enough, the infrastructure you have in place to manage those users’ support requests, feature requests, and transactions is not difficult to manage, even if your infrastructure is poor. Once your user / customer base rapidly expands, the various infrastructures you have in place become vitally important.
The majority of our revenue stream is through extension sales, and most of our extensions are built by someone other than myself. This is important because I was the only person early on that reviewed extension submissions. I was the guy from start to finish. I reviewed the extension code, tested the extension, reported bugs, setup the product pages, created the product images, set the pricing, setup the extension’s support forum, clicked publish and setup the newsletters and blog posts. I did it all. While this was easy to manage early on, once we got to the point of having 5-10 active extension developers submitting code for review each week, it became exceptionally difficult.
Early on, my method for keeping track of which extensions were getting built, which needed updated, and which were ready to go was my email inbox and it was impossible to manage.
As happened with managing extensions, the number of support requests we received each week grew exponentially as our user base got larger and larger. Initially, we didn’t actually have a way of tracking which support tickets were resolved, who was assigned to them, how many were currently open, which ones were waiting on staff replies or any of the other statistics or records that are vitally important to adequately managing customer support requests. Due to this, we lost track of a large number of tickets, some of which turned into 1 star reviews because the support was less than stellar.
Through all of the challenges, I believe we have come out on top. Here are some quick stats that help us see that it’s all been worth it:
- 94% of our users (that submitted a survey) would definitely recommend Easy Digital Downloads to a friend or family member
- 92% of users that rated Easy Digital Downloads on WordPress.org gave it a 5 star rating
- Easy Digital Downloads is approaching $500,000 in annual revenue
- More than $120,679.30 has been paid out to 3rd party extension developers
Are we done? Definitely not. Have we faced our most difficult challenges? Probably not, and that’s okay.
Digital Downloads was a breeze to set up and very easy to customize into what I needed. There were a few small things I encountered that I could not resolve; however, the amazing support team was able to quickly answer my questions or point me in the right direction.
f you want to make your own theme for this plugin you can start with EDD-Starter-Theme-master , you can find it here .
the support for this free plugin is outstanding too ! ..
I am a user of EDD and find the product exceptional. Their model is splendid: I am always SUPER happy to pay for the extensions as they almost always do exactly what I need.
Excellent. This is a better alternative to gumroad where the user is force to open to another platform which is a strange environment so to speak. Might even forget the reason why he buy in the first place.
Hi 🙂 Thanks for your feedback on EDD.
I have the same need as you to manage a “premium” support.
Can you tell us which system do you use to manage yours ?
We use bbPress plus a some plugins from WordPress.org plus some plugins we’ve developed (you can find most of that code on our GitHub page) to make EDD’s support work
Awesome. As you know I’ve been following EDD from the beginning and while I haven’t been as active in the past couple years, I continue to follow the updates and recommend it 🙂 Good luck Pippin!
Good one Pippin,
Your evolution would serve as a starting point for other great developers out there.
Im quite a bit uncomfortable with your last instance of providing support on different websites depending on where the plugin was purchased. It brings up a question, how do you as the core developer track the suitability of extensions built by external and ensure adequate support for your clients.
Truth is EDD is fast becoming a community and each member has to be responsible to each other member and the community itself
We try to keep it simple: if the extension is sold through the EDD website, it gets supported by the support team on the site. If it’s sold through another site, then it’s up to the author to choose how and where to support it.
Thanks for the writeup Pippin. You mentioned it’s hard to keep track of all support tickets, do you mind sharing some tips or tools to keep track of them?
I’d recommend using a system like Help Scout. We don’t use it for Easy Digital Downloads but I recently moved to it for my other plugin support: http://pippinsplugins.com/important-changes-support-system/
Good to see the evolution of support at EDD. Support is in most cases the best tool for marketing. People will leave reviews on the repository, and recommend to their friends. Moreover, it tightens the feedback loop, if you’re into Agile.
Question: wouldn’t it be tempting to hire devs in order to create more in house extensions? Or is the increased management time not worth going down that path?
We do hire devs for in-house extensions. It really varies from extension to extension and depends largely on which developers are available / interested at the time.
Out of 120+ extensions, probably at least 20 were contracted.
Big fan of your work, your product & your articles. Thanks for bringing some of the challenges to light. Most “users” won’t read this or “get it” but that’s ok, some will.
I have to say, I hate paying for extra add-ons, but mainly because I’m cheap. I do it because I see the value in the product & like to support the developers. I’m a developer too, so technically I could write them myself given enough time.
Your Manual Purchases plugin has been invaluable (combined with the Software Licensing) as I sold plugins on a 3rd party platform and had to handle the licensing & sales tracking manually. $15? It probably saved me days over the last year.
I look forward to seeing where you go next!
Thanks for the feedback! Manual Purchases is one of the perfect examples of a plugin that is invaluable, but also one that many users feel dis-inclined to pay for, for good reasons.
I’ve used EDD and have purchased a number of extensions and other plugins from Pippin. I have to say I find the quality of products provided to be fantastic, prices are reasonable including the extensions, and the level of support to be great all around.
I do, however, find the existing support framework to be confusing, having purchased a pippinsplugins.com support membership at one point, and then receiving support for individual EDD plugins for limited amounts of time and not being sure where exactly to turn for help. I look forward to seeing some kind of system that is clear to the EDD / PP.com purchaser that captures the needs of developers but which also fairly reimburses Pippin and his team.
Thank you for the kind words Scot and for bringing the confusion to my attention.
Having so many plugins spread over several sites, this is definitely another challenge that has been . . . .challenging.
It’s an area that I’m working on improving and have just recently made a large step towards with my move to HelpScout for all support for plugins sold through pippinsplugins.com: http://pippinsplugins.com/important-changes-support-system/
To help clarify things for you a bit: support is always provided via the website that the item is purchased from. If it’s purchased from pippinsplugins.com, that’s where support is handled. If it’s purchased from easydigitaldownloads.com, that’s where support is handled.
I love your Rocket Richard gravatar for the Stanley Cup occasion!
Thanks for writing such an awesome post Pippin! I have no doubt that it’ll inspire many would-be premium plugin developers out there, and it’s fascinating for the rest of us to get a behind-the-scenes glance at the decisions that go on with plugins like EDD.