In May of 2020, with the COVID-19 pandemic swirling and the UK in lockdown, I found myself working too hard, spinning too many plates, and a little stressed. Which made it seem even more crazy to start something new. But when the itch arrived, I had to scratch it.
This is the story of Plugin Rank, a SaaS (software as a service) app that helps WordPress plugin developers track and improve their rankings in WordPress search results, from building it to selling it within 12 months.
At Delicious Brains early in 2020, we started to take WordPress plugin SEO seriously to maintain and improve our plugin rankings in search results by optimising the plugin readme.txt files. In order to track our search positions we set up a spreadsheet to record monthly positions.
I then started to do this for my own plugins, WP User Manager and Intagrate Lite, but quickly realised that manually updating a spreadsheet and remembering to do so each month wasn’t going to work for me. I became a developer to make my life easier, so I decided to build something that could help me.
Although I’ve been professionally working with WordPress for over 10 years, I’ve had exposure to building applications with C# .net, PHP with CodeIgniter, as well as a little Laravel. I’ve been wanting to fully dive into Laravel development for a long time, but always found myself frustrated by a lack of progress when just trying to learn to build things with Laravel. Building this tool would provide me with a concrete problem to solve.
I then had it set in my mind that I wanted to start, build, execute and release a Laravel app for this tool – I was resolved to not let it sit on my pile of unfinished things.
Setting myself the challenge of building and launching a SaaS app during the pandemic probably wasn’t the best idea, but it proved a good distraction.
Thankfully Laravel makes it extremely easy to get started and it didn’t take long to get the basics of Plugin Rank working.
I knew from the outset that even though this was a tool I wanted to use, others would find it useful too. Users and authentication are included out of the box with a Laravel command.
The WordPress.org API makes it possible to get plugin results for search terms, as well as plugin information, from there I needed to tie it all together with jobs to fetch daily results, a UI for users to add plugins and keywords to track, and a way to visualise all the data.
At this point I had a fully functioning MVP but it was rough. It worked but it looked and felt rough – simple forms, no styling, form submitted with full page refreshes, and no charts. If I was to turn this into something special I needed help.
I really admire the makers who can do it all – design, dev, frontend, backend. Not only do it all but do it well. Sadly that’s not me.
I’m definitely a jack of all trades, master of none – I know enough to get by, but I know where my weaknesses lie, and indeed my strengths. I also struggle developing things from scratch when I don’t know the technology very well. I can happily continue inside an established codebase however. The app needed some real polish in the form of Vue.js components, AJAX and realtime events. So I decided to outsource.
I found a developer on Upwork with Laravel and Vue.js skills and he set about turning all the forms into Vue components, adding modals, AJAX data getting and setting, ChartJS charts, Laravel background jobs, and hooking up Pusher for realtime events. For example, if you started tracking a new keyword it would add the keyword to the table with a progress animation while the keyword data was retrieved in the background, and then rendered automagically in the table when it had finished.
Design is definitely one of my biggest weaknesses, and with the app turning into a heavy data visualisation dashboard I wasn’t going to be able to make it look good. I found a great looking admin app Bootstrap theme that was pretty straightforward to apply onto the app, and came with a great looking ChartJS integration.
It was really taking shape. But the biggest missing piece stopping me from launching was handling recurring payments from users. As my friend and fellow Delicious Brain Ashley Rich had recently launched his SaaS ReplyBox, and had built the exact same functionality, I hired him to integrate Stripe Checkout into Plugin Rank. 🙌
Things were getting serious!
I quickly settled on the name Plugin Rank for the app, but after looking at the domains available, it was only initially possible to register pluginrank.io. Not great I thought, but it would do. The .com was taken and open to an offer via DomainAgents, and even though this was a side project with no revenue or usable app yet, I decided to make an offer on it.
After some negotiations, I managed to secure the .com for $750, which for good domains seems cheap, but for a nascent side project seemed crazy! Luckily the seller was extremely helpful and friendly, and was also part of the WordPress community. He even transferred the Twitter handle as part of the deal!
With everything in place it was time to launch. I’d had a period of beta testing the app since June with some friends and decided to pull the trigger on the launch in August.
I was really happy with the reception it received, with a bunch of trial signups and it even got covered by the WP Tavern.
Finding Some Success
After the initial launch it felt like Plugin Rank took on a good pace of new users and new features being added.
I’m especially proud of how the app changed and improved over time, especially the UI.
Seeing the range of customers using Plugin Rank was very rewarding. Having solo developers to extremely large WordPress companies using the app was mind blowing.
Running a SaaS, focusing on all the metrics like MRR and churn, was a different change of pace to selling annual licenses for WordPress plugins. But I enjoyed the challenge and was proud to break the $1K MRR mark along the way.
Benefits of Building
I started building the app because it was a tool that didn’t exist and I wanted to use it. As soon as I launched it and others started to pay to use it, the secondary benefit of monthly recurring revenue was great. Another side project, to add to a number of small bets that help bring in revenue each month. However, there were a number of unexpected other benefits to come from the project.
Due to combination of producing content for the blog and building features that would actually help developers rank higher, I found myself gradually building up authority in the space. Along with talking about developing and selling WordPress plugins, marketing them through the WordPress channel became another topic that I would discuss and others would loop me into conversations on Twitter and elsewhere.
I’m a big data nerd. Tracking and analysing data is really interesting to me. In a previous career I wrote SQL reports to interrogate a data warehouse for a large telecomms company. Having a question and be able to write an SQL query to answer it feels like a super power. After 6 months of the Plugin Rank database growing in size and effectively turning into a data warehouse for WordPress plugin data, it dawned on me that I could use it for more than just tracking keyword positions.
After an extremely helpful Slack chat with Cory Miller of Post Status about Plugin Rank and my other projects, it sparked the idea of starting a newsletter about WordPress trends – using the Plugin Rank database as a great source of trend analysis and insights about the WordPress plugin ecosystem, as well as commenting on acquisition happenings in the marketplace and surfacing new acquisition opportunities.
WP Trends was born.
Plugin Rank is a dedicated tool for WordPress plugin developers, and so the customer base was just like me, building and selling plugins. It was great releasing a new feature and emailing the users and getting some really helpful feedback and feature suggestions from them. At times it felt like building software for friends rather than customers.
When I released the estimated active install number feature that wasn’t available for all due to lack of data, I received two separate emails from kind WordPress folk who had been tracking the WordPress repo data themselves, offering me access to their databases so I could get what I need. How nice is that?!
The WordPress plugin ecosystem is really maturing and you can see that from the amount of businesses around the space offering products and services to WordPress businesses. Since launching Plugin Rank I’ve been fortunate to get support and forge collaborations that have benefit both businesses.
I first met Vova Feldman from Freemius at WCEU in Berlin, and he was one of the first people I showed Plugin Rank to to get feedback and advice, due to his expertise in helping WordPress developers. The Freemius blog post about outranking your plugin competitors on the WordPress repo was a big inspiration for Plugin Rank and he proposed turning it into an ebook that I could use as a lead magnet on the Plugin Rank site. I’ve had such great feedback about the book and it’s been a good acquisition channel for the app.
I also met Alex Denning in Berlin, who runs the (only?) WordPress marketing agency Ellipsis and we’ve been friends ever since. He’s helped me with my marketing strategy for WP User Manager, and as his agency helps WordPress developers market themselves via different channels, including the WordPress repo, I showed Plugin Rank to him early on to get feedback. He’s been excellent as a sounding board, sending clients my way, and has really helped me focus in on the value that Plugin Rank could offer. He was the reason that the keyword priority metric feature got built.
The biggest benefit I’ve seen is since starting the app is all the learning I’ve done. I’ve gone from a Laravel novice to gaining so much more confidence in how to structure an app and design that data structure.
I’ve also really levelled up with Vue.js which has been extremely helpful when developing WP User Manager features, as the WordPress plugin admin is all Vue based. Even though I know they are different in many ways, I’m more confident if I have to move to developing with React.
I’ve learnt more about object caching, queues and jobs, data models, and server scaling. I’ve also learnt that I’m completely reliant on Ash for server support. 😂
My advice to anyone thinking about building something but unsure on their skills – just do it. It’s a jumping into the deep-end moment and you will swim. You will work out the way to do things and you will learn.
I’ve also been learning all the skills other than development needed to run a SaaS. This includes figuring out what’s best for the product, deciding on new features that will move the needle, and finding the best way to market the app.
To do this I spent some time each week finding tweets from plugin authors about their plugin releases on the repo and simply liked them from the Plugin Rank Twitter account. That seemed to work well. I once used the Plugin Rank database to supply some contextual data to a conversation in Post Status slack, which got the attention of a few members, including Syed Balkhi from Awesome Motive.
Soon after, Syed started a trial of Plugin Rank to try it out. It turned out that he already had something similar set up in a spreadsheet but wanted to see if Plugin Rank did more. We started chatting about the app and he inquired about licensing the code to self-host it, but he also floated the idea of an acquisition.
We chatted some more and I made it clear I wasn’t really looking to sell but was open to offers. I’d had an offer early on in Plugin Rank’s life that I didn’t take long to consider and decline. But Syed’s offer made me stop and think.
I ultimately accepted and we started the process that ends with this post.
Reasons for Selling
There are a number of reasons why, for me, it was the right time to sell Plugin Rank.
Focus. I have numerous projects on the go, as well as my main work with Delicious Brains, that simplifying my life a little and reducing the amount of ‘things’ I have to think about on a daily, weekly or monthly basis was a big win. Not worrying about customer acquisition, building new features, server issues, or fixing bugs was something that appealed, especially when I do that for 2x WordPress plugins at the same time.
WP User Manager was also a big factor in the decision. When I started Plugin Rank, WP User Manager was bringing in revenue at a level higher than when I acquired it, but it has seen increased growth in the last 8 months that has really made it clear to me which product I should be focussing my attention on. Although it makes money, Plugin Rank has always been a passion project but with a limited addressable market size and a natural ceiling to its revenue, it doesn’t make sense to take my attention away from WP User Manager, which has much more room to grow.
Along the same lines, in developing and growing Plugin Rank I started to lose the reason behind why I built it – to use it as a tool to help grow my plugins. Wrapped up in the product development, I started using it less and less for my plugins. Letting go of the app will change that.
And lastly, it comes down to opportunity. It’s a good opportunity to take the deal, take the money, wrap something up and move on. I’ve hesitated in the past with other things, caught in the thought of ‘what if’. What if I could grow this more, what if I add feature X, what if, what if. Sometimes the best opportunity is the one in front of you now.
I’m so excited for the future of Plugin Rank. I know that it’s in good hands with Syed and the team. Not least because they want to use it and benefit from it as a tool to help continue to grow their own WordPress plugins. With more resources than I could offer, they have plans to improve the app and have already made changes to benefit customers. All users on the Starter plan now have access to track 10 keywords instead of 5.
Plugin Rank might sound like a solo project but in reality it’s been a success due to a group of people. From the folks I’ve already mentioned, to Brad Touesnard for his continued advice and mentorship, to Elliot Condon for his support and encouragement, to Lewis Warren for that awesome logo, and to the Plugin Rank customers – thank you. 🙏
For me, I’m looking forward to driving WP User Manager forward and continuing to write WP Trends newsletters (that’s not going anywhere). I’m hoping I have some self control to not start anything new, but no promises!
Update: Oops, that didn’t take long – I’ve launched FlipWP – the private acquisition marketplace for WordPress.