Wooosh! It’s suddenly the end of the year. I’m not sure where exactly it came from but it’s here. It’s time for rest & relaxation, planning new habits for the year ahead, and looking back on what we accomplished.
I thought we’d share some of the things we launched in 2021 both so that we can feel good about what we did at PMPro and so that the users of PMPro realize all of the things we launched this year. It’s entirely possible you missed one of these announcements so grab some egg-nog and dig a little deeper.
What we accomplished as a team in 2021:
team members – welcome Patrick, Scott, & Sam in 2021
releases and 219 pull requests on PMPro
member support tickets closed
contact form requests answered
new Plus and Unlimited members
new Free members
15% YoY Revenue Growth
First thing to share is that both WordPress is growing and Paid Memberships Pro is growing. Our topline revenue grew 15% YoY based largely on strong organic growth and improvements in churn. We are well funded to continue supporting and maintaining the PMPro platform.
Our entire company is focused on memberships and the future looks bright. So we’ll be here to support your membership site for years to come.
A couple years ago we adopted the Shape Up system for managing our product development. We’re using a slightly altered schedule (4 cycles a year, 7 weeks on, 6 weeks off) that works better for us. There’s always more we want to do, but we’ve hit a nice stride using the Shape Up system, which helps us to make more progress on the development efforts that matter.
Courses for Membership
Courses and membership websites go hand in hand. Online learning brings a unique selling point that incentivizes people to become members. A membership website provides one of the best business models for a course creator. Create your own online course with WordPress and run your own membership site.
The Courses for Membership Add On is now our preferred way to integrate PMPro with LearnDash and LifterLMS. We plan to add support for all of the major LMS and Courseware plugins over time. The add on can also be used in place of a separate LMS plugin if you only need a couple CPTs to organize your lessons and minimal progress tracking.
You can now set an expiration to expire one or more hours. Previously, the minimal expiration time without custom code was 1 day. This is useful on sites that would like to offer limited time trials of a specific length.
Every business has busywork and work that’s undesirable. Luckily today there are tools you can use to automate that busywork. We wrote about 11 things you can automate in membership sites. And this year we developed a native Zapier integration for our core plugin so anyone can use it.
The work we’ve done on the core API sets the stage for us to build official Zapier templates that can be used instead of building your own recipes from scratch. Look out for updates on our blog as we roll out these templates and further improvements to how Zapier works with PMPro.
Email Templates and Member History in Core PMPro
If a PMPro Add On is being used, or should be used, on more than 30% of PMPro sites, it probably should be merged into the core plugin. This was the case with the Email Templates and Member History Add Ons. We’ve fixed up bugs in those Add Ons and merged those features into the core PMPro plugin. You can now edit the PMPro-related email templates from a GUI in the PMPro settings and view important membership history information on the edit user page of the dashboard.
We’ve updated the Gift Memberships Add On to be easier to set up and more reliable in how it works. You can now set which levels are “gift levels” and the other settings from the edit level page instead of requiring custom code.
Sitewide Sales saw several updates this year and probably deserves its own post. Some of the biggest improvements were the addition of Easy Digital Downloads integration and a general purpose sale type that could be used on sites running any ecommerce plugin, or no ecommerce plugin. We plan to continue improving SWS to become the best way to run sales of any kind on a WordPress site.
We are now storing important diagnostic information in the Site Health tab of the WordPress dashboard. We also updated our ticketing system to be able to paste this information into your ticket, making it easier for us to address your tickets better as quickly as possible.
We are always working to make PMPro and our Add Ons available in multiple languages. Part of that process has been improved and sped up. Using GitHub actions and a clever script our team came up with, we can now generate .pot files for any of our plugins at the press of a button. This is just one step of the process. We need to do more work to support our translators and editors, including finding a system as good as GlotPress for managing the translation files for plugins we host ourselves.
Another improvement to our GitHub workflow and development workflow in general is the addition of automated unit tests in the core PMPro plugin and a few of our add ons. These tests will catch certain kinds of bugs that might otherwise be missed in review, and also help to guide us as we refactor the software. We plan to add unit tests to all of our plugins. This work takes time and slows us down a little bit, but ultimately it will give us the confidence to make more aggressive changes to plugins that need it.
Calculating and paying taxes for online businesses is complicated and challenging. Luckily there are companies like Avalara and tools like AvaTax to help out. We’ve launched our AvaTax Integration plugin, which will use the AvaTax service to determine the tax liability of every checkout and recurring order, and also help you to figure out who you need to pay and how much. For now, this integration only works when tax is “included” in your level prices. We’re working to update the plugin to support itemizing the tax amount at checkout so customers only pay the required amount. This work also sets the stage for us to address other tax requirements and integrations going forward.
We have updated our Stripe integration to allow connecting with Stripe Connect. This is an easier set up process for most users and is more secure than copying and pasting full API keys. Stripe Connect also shares some information with us that makes it easier to diagnose issues and support our users.
Kim and I are very grateful to have built such a successful open source product for WordPress. We’re even more grateful for the daily privilege of working with team PMPro.
This post doesn’t hint at upcoming features, share a development roadmap, or even spill the beans for the exciting new team additions you’ll hear about soon if you follow me or @pmproplugin on Twitter.
What I will share is that you can expect another year of growth and product excellence from the people that create, support, develop, market, and build community for Paid Memberships Pro.
Let’s go 🚀