Lessons I’ve learned from supporting my own WordPress plugins
Supporting your own software is inherently tricky. As a developer you want to give the best possible level of support to your customers, but often due to circumstances out of your control it can be extremely difficult.
I released my first official plugin (Notely) to wordpress.org back in 2016, a modest effort that to this day only has 900+ active users and a five star rating. Very early on I realised that for the most part, users are pretty helpful when it comes to providing feedback. This is not only awesome but also makes me optimistic about helping them towards a solution.
At the same time, most users are not technically savvy on the subject of actual WordPress development, and will happily give a plugin a 1 star review if it fails them even when it isn’t the plugin’s fault.
With this in mind, here’s a few things I’ve learned over the years that have helped me come to terms with the reality of supporting my own software in both public and closed spaces.
Some users will give a bad review when your plugin doesn’t solve a problem it wasn’t designed to solve
Last year I had someone reach out for support because my “dumb plugin” Open Graphite was not working as they expected. It turned out they had four other plugins activated (yes activated, not just installed) that were also responsible for handling open graph meta tags, and installing Open Graphite was their fifth attempt. This means when their website was scraped by Facebook or any other social media platform, it would encounter five sets of open graph tags instead of just one. It was a complete mess. (Incidentally this possibly also means that four other plugin developers received similar correspondence to mine).
After identifying this problem and convincing them to deactivate the other plugins, there was still a duplicate set of open graph tags present. Further investigation revealed that the theme they had purchased already performed open graph duties, and so there was no need to install any plugin for that purpose in the first place.
But that wasn’t good enough. They claimed that the open graph control in their theme was “crap at best” hence their reason for trying other plugins and eventually Open Graphite.
The problem they were trying to fix was that Facebook was not showing the ‘correct’ thumbnail of their post. What they did not know was that Facebook keeps a cached version of the post for 24 hours, and someone had already shared the post on Facebook while the older thumbnail was in use. So for several hours they threw different plugins at the problem hoping that Facebook would show the new thumbnail, but of course it never will for 24 hours unless you run the URL through the Facebook debugger.
It also turns their theme only had a basic open graph implementation with no way of forcing Facebook to update the image and text of the post on demand (like Open Graphite Pro can).
From this particular users perspective, Open Graphite was just another in a long line of plugins that did not appear to work, but in reality it just didn’t solve the problem of user ignorance. For all my efforts the plugin received a one star review despite me explaining that the 24hr cache cycle is mandated by Facebook, and not the fault of any plugin or theme. Sigh.
Lesson learned: Despite your best efforts, some users are dead set on giving a negative review if they’ve had a bad experience, regardless of where the fault lies. There’s not a lot you can do about it, so you can expect that it will happen at some point.
Some users expect you to support issues that aren’t related to your plugin
In situations like this, I like to at least offer a push in the right direction. Any help is better than no help, and for all you know that nudge might lead them down a path to solving their problem.
Lesson learned: Going out of your way to offer a little help even if it’s clearly outside of the support scope can still earn you kudos, and demonstrates a caring attitude in a public space.
Many users aren’t running the latest version of your plugin
As any plugin developer will testify, this is an ongoing problem. The entire purpose of updating plugins is to solve technical issues, squash bugs and perhaps introduce further functionality. But quite often the user is running an outdated version of your plugin and didn’t bother to update it before making a complaint about an issue they were experiencing.
Take a look at this chart from my Open Graphite plugin:
For context, v1.0 is 13 months old, v1.1 is three months old, and v1.2 is seven weeks old at the time of writing.
Clearly a significant number of users are running very outdated versions of the plugin. I have had (on more than one occasion) an email from a user complaining about an issue that I had already solved weeks ago. Updating the plugin would have taken less effort than composing an accusing email.
Lesson learned: There’s no way to force updates on users, and so all you can do is hope they adhere to a good plugin update policy.
Some users will leave an unhelpful review
Easily the most unhelpful review I have ever had is this:
“This doesn’t do anything, it should be removed from the listing”
This is unhelpful for one main reason: it doesn’t offer any information for other users other than the fact it did not work for them. It would have been more helpful if they were a little more specific.
However this review, despite giving a low score, is still useful and appreciated for being helpful:
This comment may help XTreme Builder users avoid using the plugin in the first place, and also provide me with some valuable feedback where I have the chance to correct any issues for users of that theme.
Lesson learned: Sometimes low scoring reviews can be among the most helpful.
Some users will give you a bad review for excluding certain features in the free version of your plugin
This is a little subjective depending on who you ask. But I felt that this review…
Sorry, but if defining defaults requires buying a PRO version, then it is probably not worth the trouble.
…was not 100% justified. To me this is really the user disagreeing with the choices I made when building the free and pro versions of the plugins, and a particular feature they wanted was not in the free version.
And even though a WordPress moderator disagreed with my assessment, the review stands. But it’s still worth mentioning here for what it’s worth.
Lesson learned: You can’t make everyone happy, and sometimes you have to agree to disagree.
Some users feel entitled to free software
Thankfully the large majority of users appreciate the fact that you’ve spent significant time and resources creating something for them to use at absolutely no cost (to them).
And so I was always miffed whenever a user said I was “an idiot” for not providing them with a free version of one of my premium plugins.
Offering free versions of your software comes with its own set of challenges, such as having to maintain and support two different versions of the product as an example.
To cite another example of entitlement, I once had a user send me an email demanding that I hand over a copy of one of my premium plugins because (and I’m paraphrasing here) “WordPress is open source and you have to give me a copy whether you like it or not”. After pointing him to my article about how the GPL works, and mentioning that the GPL affords me or anyone else the right to put software behind a paywall, he didn’t like that and called me a “d*ckhead” for not complying. Sigh.
Lesson learned: You are absolutely not obligated to hand over any of your premium plugins for free just because someone asks for it, and any feedback claiming otherwise is both misguided and ignorant.
You take the good with the bad. As mentioned already, thankfully most users are respectful of your efforts, but you’ll always come across negative nancys ruining your day.
They can be a genuine drain on your mental health, so try not to let them get you down. As much as it might be counterintuitive, in a public forum it’s best to be diplomatic and take the high road.
The WordPress support ecosystem isn’t perfect but it’s all we have, and so you should ideally make efforts to keep the experience as positive as you can.
wProject has launched and you can get it right now
As of today wProject is available for purchase, and there are implications for Task Rocket.Keep reading
wProject feature demonstration
Subtasks are arguably the biggest deal. As is often with any task, there can be a number of smaller tasks that need to be accomplished within it.Keep reading
Introducing wProject and what it means for Task Rocket
It’s been is a long time coming. Specifically, wProject is intended to be the successor to Task Rocket.Keep reading
Open Graphite Pro now has an enhanced Slack sharing option
With the release of 2.0.0 today, Open Graphite Pro has a new option to enable enhanced Slack sharing.Keep reading
When responsive design is not enough, wp_is_mobile() to the rescue.
While using responsive design for mobile presentation is the default philosophy for any web developer who cares about the web, it doesn’t solve some of the other problems.Keep reading
Task Rocket June Updates (v126.96.36.199)
Task Rocket has received an update to the contextual secondary navigation user interface. It’s about time.Keep reading