Why Open Source? Why For Sale?
This site offers scripts, plugins, and themes for sale and for free. A question I’m often asked by friends and colleagues is how I decide what I sell and what I give away. There’s no formula but there is a rationale.
First: Giving Back Is Important
I built my whole career on the backs of many other people before me. I learned what I know, partly, from blog posts, free guides and ebooks, and reading open source code. I feel very grateful that the path I choose is so populated with generous, smart people who can help me level up. While there are cons for all the pros of free, abundant information, the net benefit is a highly-available, very complete (though poorly organized) library of information.
Beyond that, I’ve also been fortunate enough to be able to find clients who have paid me to build their sites on free software. I don’t charge for the software, of course, but the functionality provided by WordPress, plugins in the repo, free JS libraries, and everything else give me a huge head-start towards creating something great. Without all of these pieces, what I made would have been maybe 20% of what it ended up being.
Going even one step further, open source software has allowed me to build a business around providing add-ons to existing functionality. Without the base platform, typically WordPress for me, I would have no starting point and no user base to sell to.
I take none of this for granted and often find myself stunned that this whole ecosystem even exists. Without the hard work of thousands (millions?) of people, what’s happening on the web now would not be possible at all. Apache, Nginx, jQuery, MySQL … all of this and much, much more comes together to create near limitless possibility and empower endless creativity. The whole thing is mind-boggling and I’m very happy to be a part of it. So I give back.
What Is Free?
Again, I don’t have a set of rules I follow but my free software typically:
- Solves an actual problem that many people have
- Is the result of experimentation
- Is based on scripts and functions I wrote for a client project
- Has specious commercial application
- Is not a packaged piece of software (i.e. just a component to another piece of software)
For example, I created a contact form plugin called PROPER Contact Form. Every client site I created needed a contact form so I found myself using a contact form page template, iterating each time. Every site I put out improved on that form but it didn’t makes sense to go back and install this form on old sites without asking the site owner. I also put out a theme, WP-Drudge, with a contact page template and widget that required updates for each release. The re-work was both maddening and former clients could not benefit from improvements I made in the future. On top of all that, there are many different contact form plugins out there, some paid (the very competent Gravity Forms), most not. It was a common problem, it was created from my work with clients, and there was not a solid market so now it’s open source. And popular! 15,000+ downloads as of this writing.
I also built a PHP Form Builder as a way to generate HTML forms easily with PHP. This is still in beta but I use it in the PROPER Contact Form plugin so it’s being used in the wild. This was just a thought experiment and was created to improve both my understanding of form HTML as well as object-oriented programming. People have found a few issues, used it in their own projects, and given me good feedback. The project served it’s purpose and it’s my pleasure to keep it up-to-date.
Though I’m concentrating on selling more plugins and themes in the near future, my commitment to open source software will not wane. I have several open source plugins that I’ll be releasing this year and a pair of helper scripts that were created for a Drupal to WordPress migration that included CiviCRM. These represent a lot of hard-earned knowledge, most of which pulled from the work of others. I also intend to make 2014 the year I finally get a core contribution mention for WordPress.
What Is For Sale and Why?
The plugins and themes I have for sale here are all written from scratch by me and fill a gap in the market (I hope). I rarely use open source libraries in my for-profit code and, if I do, I’m diligent about respecting the license associated with the package.
Paid software does more than just provide me with a salary. Paying users give me additional motivation to do better, add features, and keep the packages current. Users who pay for software demand more than users who don’t and this works to my, and their, benefit. Bug fixes are pushed out faster, new functionality is added more rapidly, and response times are lower. Overall, it allows me to provide better products across the board, both free and paid.
As a bit of a tangent, I want to compare a type of software that has both paid and free versions: the software writing tool called an Integrated Development Environment, or IDE. An IDE is what I use to help me write software better and faster. It finds errors, suggests functions, allows for code snippets/templates, and much more. I probably only use 20% of my IDE of choice.
When I first started writing software, I used a text editor, Notepad++. It helped a bit through syntax highlighting (changing the color of the text based on it’s function) and a few other tools but I used an IDE while learning Java in college and knew there was more that I was missing out on. So I went on a hunt for a PHP IDE.
An IDE is an incredibly complex piece of software and the more features it has, the more problems you’re likely to encounter. I tried several of the open source (aka “free”) IDEs like Aptana and Eclipse (with a PHP plugin) and found them all to have two common problems: missing or broken functionality and incomplete or non-existent documentation. I tried and tried to get them to work in a way that made me more productive and just couldn’t get there.
On a whim, I tried PhpStorm, a commercial IDE by JetBrains. I read good reviews online and saw they had lots of documentation. One week in and I was hooked. Everything just seemed to work in a way that I had not encountered before. I happily paid my license fee and have been using the application for a couple of years.
This is not to say that the others I tried were unusable or bad software, just that the motivation to keep on top of issues and documentation is different for software that’s built, for the most part, by volunteers. I have to renew my PhpStorm license every year and, because the bugs that I submitted were addressed and the documentation typically comes through when I need it, I happily pay it.
Like JetBrains, I am thankful that I have happy, recurring users that love what I make and keep supporting me and my family. I feel a strong commitment to them for supporting what I do and make it my goal every day to make sure they are overjoyed using what I make.