A friend asked me a very interesting question yesterday: was publishing free plugins for WordPress worth it?

I sat for a minute and cryptically answered: it depends.

It depends on what it is you're trying to get out of the plugins in the first place. All of my publicly-published plugins have been free; it's been way way to give back to the community that helped educate me as a developer. Anyone can learn from the cool code I've written, or from the horrible mistakes I've made.

I haven't made much more than a handful in donations from any of the plugins. Unfortunately, I have been asked to give a lot in return.

Support

Plugins in the public sphere are used by a lot of people - all together, my plugins have been downloaded over 100,000 times.

There are bound to be issues.

I subscribed a while ago to a feed of support questions related to my plugins. I don't check the forums daily, but I do keep an eye on things to make sure there aren't catastrophic security issues running wild. In my book, you get what you pay for - my code comes with no warranties and no guarantee I'll publish further updates or fix any bugs you find.

If you were paying me, expectations are a bit different. If you're not paying me, tough luck.

Unfortunately, no code is ever perfect and people find issues with my work almost daily. I didn't account for this character set they're using on a site. I didn't plan ahead for files of several hundred megabytes being served by a simple script. My widget isn't compatible with a 4-column responsive theme. I didn't add enough filters for ordering content in presentation.

If I tried to follow up with every feature demand, bug report, or user support request that comes to my inbox, I'd have to quit my day-job and handle them full-time. Again, though, I give away the plugins for free and those running to the support forums often want my support for free, too.[ref]The few who do attempt to compensate me for my time are appreciated, but sending me a $5 donation to thank me for 5-10 hours of custom development work to fix a feature is not sustainable in any sense of the word.[/ref]

I don't provide support for my plugins for the same reason I don't charge for my plugins: I'm not distributing these plugins for the long-game.

ROI

The return I get from my investment in plugins is twofold: learning and community.

On the one hand, I often build a plugin because I've learned or want to learn something new. I work for several hours on my code, and come up with something I think is pretty neat. I share it with the community so either others can learn from it or they can point out where I went wrong and how I could've written things better.

I'll take this learning and apply it to paying projects that help keep food on the table. At this point, I've already gotten as much return as I expected from my plugin: I learned something.

But I release the plugin into the community and perhaps support it for a year or two because I think others can learn from it, too. Does the constant rabble of the support forums bother me? Sometimes. Often it's so frustrating I want to give up on distributing free code entirely.

Then I get that one email of thanks that reminds me where I started - looking at and learning from free code published by others. Then I sit down, write a new project, learn something, and set it free.