Hello! What's your background, and what are you working on?
A hoy hoy!
My name is Paul Jarvis, and most of what you need to know about me is in this interview. I work on WPComplete with my business partner for the project, Zack Gilbert. Zack and I have also built a few other projects together, like ofCourseBooks (sold in 2017), YourPack and Fixtail.
WPComplete grew out of my own personal need for functionality in my WordPress courses. There’s lots of great software that can turn any WP site into an online course in a few clicks, but none of those software solutions had the ability for students to track their progress through the lessons (or for teachers/admins to track the overall progress of students).
In 2016, I hired Zack as a freelancer to develop a plugin, specifically for my courses, which he did (he did a great job of it too). What I didn’t know would happen was that the main question I got after adding that functionality to all my courses was students asking, “Hey, your course is great, but can I buy the plugin that lets me track my progress?”. I was getting more emails about the WPComplete functionality than I was about the course content.
So, Zack and I chatted and decided to turn the custom plugin for my courses into a freemium plugin that anyone could either download from the WP plugin directory or purchase from us directly. Since then, the plugin has grown from being able to add a single button to any page or post into a fully-featured addition to any WP course platform, letting customers create multiple courses, add multiple buttons to the same page, show a variety of tracking visuals, create “peer pressure” messages (ex. “56% of students have completed this lesson”), list lessons per course, and show which are completed and which are not. In addition, it shows “conditional” content which only appears if a lesson is complete or incomplete. We’re constantly adding more features and functionality, as well.
Currently we have over 800 users of the free version, 527 paying customers, and we’ve generated $33,488.49 in revenue.
What went into building the initial product?
At the time I had 4 courses and around 8,000 students taking them. So I had the budget to hire a developer (Zack) to build the custom plugin for my courses, which served as a great version one of the software. It took about a month to build that first version, then about two months to build a free and paid version that anyone could buy and use.
WPComplete works on a yearly licensing model. That’s fairly popular in the WP plugin space. Customers pay $89/year and it comes with free updates (like additional features), support, and a license for a single website (note: it auto-activates on most development environments, like “anydomain.local”, “anydomaindev” or “localhost”).
We use Easy Digital Downloads to power payments and licensing because it’s super easy to use and their support team is top-notch. That way we didn’t have to build out a payment engine, licensing software, or anything else. We plugged in their licensing code into our plugin, uploaded a zip file and connected Stripe and Paypal.
Easy Digital Downloads is a suite of tools that are plugins to WordPress, so we specifically used the following to create the functionality we need to sell a plugin with a yearly license:
- Easy Digital Downloads
- Easy Digital Downloads: PayPal Website Payments Pro and PayPal Express Gateway
- Easy Digital Downloads: Recurring Payments
- Easy Digital Downloads: Software Licensing
- Easy Digital Downloads: Stripe Payment Gateway
This costs us about $400 a year to get a really full-featured way to sell software for Wordpress.
Our free version of the plugin is hosted on WordPress.org, and this drives a decent amount of traffic and customers to the paid version for use, because the WP community is massive.
How have you attracted users and grown WPComplete?
The initial traction for WPC came from my own audience. I have a mailing list of ~30,000 subscribers, and currently have ~14,000 students in my own courses (all of which have WPC running on them).
So when we started offering WPC for free and for sale, the first people I told was my list and my students. I already knew a lot of my students had their own courses or wanted to have their own courses, so it was a pretty easy sell to those people, because they were already familiar with what WPC did, since they used it on the courses they took from me.
From there, I’d say we attract users in three main ways:
- My personal audience. A lot of them are indie hackers, freelancers, and online course creators. I email them once a week in my newsletter, and talk about WPC often.
- WordPress.org. Once people find and install the free version, which has limited functionality, they’re hooked on what WPC can do for their course, and a lot end up buying the pro version.
- Word of mouth from WP influencers. We’ve really done everything possible to make WPC a great piece of software that works with most online course software, most themes, and plays well with most other plugins. Our support (that Zack and I do ourselves) is also responsive and helpful. By doing this, our plugin stands out and gets talked about in online course software roundup blog posts (like this one), I get interviewed by people in the WP community, and online course creators who share their “course-stack” mention us all the time.
I think that because of the fact that WPC grew out of my own personal need for software like this, and I was the target market for it, I really had great insight into what was needed, what could be ignored, and how to pitch it. I also had the benefit of having a great and engaged audience for the work I do, and those people trust me and trust the products I release. Add to that a sprinkle of the fact that Zack and I have worked together before, and my audience already knows and loves him as much as I do.
Finally, because our software has a yearly license, every month (since we’ve been around for more than a year) we see both new sales and recurring revenue from license renewals. So past the first year, we’re seeing compounding revenue, which is great.
What's your business model, and how have you grown your revenue?
Our business model has always been that growth is the direct result of profit. We’ve never taken money from outside sources, and we spend time on WPC as more revenue is generated.
Neither Zack nor I treat WPC as anything more than a side hustle, which works great for us, since we’ve got other things on the go. We love the project and focus on it when we need to, but it doesn’t require either of us to be full-time on it, nor would the revenue support that.
Our expenses are so minimal. We pay for hosting ($120/year), and the EDD software licenses ($403.20/year) and that’s it. So we need to sell 6 copies of WPC each year to cover that (which we do every month, averaging 20 licenses/month over the last 12 months). We use the free version of MailChimp to email our customers and free credits on my Postmark account for transactional emails.
Our Stripe vs. PayPal split in terms of how customers pay is almost equal, and both took seconds to integrate because we use EDD. We’re currently averaging over $1,500/month in revenue, split fairly equally in the last few months, between new customers and existing customers.
What are your goals for the future?
I don’t see much changing for the future of WPComplete. We’ve got a great and super niche software product that works well and our customers love it. As revenue continues to come in, we’ll continue to slowly add and refine features.
As I said, Zack and I both have other focuses in our lives and work, but WPC is still a great side project we both enjoy working on and supporting. I can’t see that changing.
We’ll obviously have to do a bit of work when Gutenberg finally comes out, since how people add content to WordPress (and use plugins to add content to WordPress) will change quite a bit.
What are the biggest challenges you've faced and obstacles you've overcome? If you had to start over, what would you do differently?
Easily the biggest challenge for any WordPress software is that it’s only a single piece of a bigger collection of software, all coded by different people.
So I would say most of our support requests have nothing to do with our plugin, and mostly to do with either server setups, problems with themes that don’t play nice, or other plugins that break our code.
We could easily tell most customers, “sorry, your errors aren’t the fault of WPComplete, byeeeeee!” and leave it at that, but early on, Zack and I figured that’s no way to treat customers, even though technically most issues aren’t due to our software. So we always try to help, regardless of what code or server settings caused a customer’s course to malfunction. Yes, that definitely can be time-consuming, but it’s led to a great word of mouth for our software and our support, as well as not a whole lot of churn or customers not renewing their license.
Honestly, we had no idea this would be the case, since our other software products are stand-alone and don’t break due to other software issues. So it was shocking at first to realize how much support was required for a WordPress product. That said, now that we know, we definitely do a lot more testing in terms of trying our plugin on sites with other plugins, other themes, other course software, etc. So rolling out new features is slower, but it saves time in the long run.
What's your advice for indie hackers who are just starting out?
I really think that understanding who you want to serve is a huge piece that a lot of new software companies miss. WPC has worked because I exist in, know well, and am very connected in the space we serve.
Take, for example, if I wanted to sell real estate software. I only know a single realtor (my realtor), and we haven’t talked in years since I haven’t bought any property or houses in a long time. I don’t know the market, the players in it, or what their needs are. If I created software for real estate, it’d be mostly guesses.
However, for the online course world, that’s my background. I know the players (and I am one), and I know the customers (since I have 14,000 of them in my existing courses). So decisions I make with course software aren’t just based on my guesses, they’re based on data and knowledge. It’s also easier for me to market and talk about online course software, because my audience knows that’s what I do and trusts that I get it better than other folks (like realtors!)
We need ego to build something from scratch, because it’s based on an assumption that we can do something better than what exists in the market (otherwise, without that bit of ego, we’d just use existing products). So ego, in this case, is great and necessary. Where things can go wrong, which has both happened to me personally and what I’ve seen happen to friends, is if ego to start gets in the way of decisions.
What I mean by that is sometimes we think we know best, when we don’t actually know much or anything about the market, the customers, or what their needs are. The more we can lean on empathy instead of ego here, the more we can put ourselves in our potential customers’ shoes and really understand their needs and motivations. This will only benefit us in the long run, since we’ll be making smarter and more informed decisions about our products.
Where can we go to learn more?
If you’ve got any questions about creating or selling a WordPress plugin, ask below! Zack or I will do our best to give you an answer.
—, Co-founder of WPComplete
Want to build your own business like WPComplete?
You should join the Indie Hackers community! 🤗
We're a few thousand founders helping each other build profitable businesses and side projects. Come share what you're working on and get feedback from your peers.
Not ready to get started on your product yet? No problem. The community is a great place to meet people, learn, and get your feet wet. Feel free to just browse!
—, Indie Hackers founder