First, a little background for those less familiar with GPL:
WordPress is licensed under something called GPL. There’s a lot of text in that licensing document, but the gist of it is this:
- You are free to view and edit the code.
- You are free to give the code to whoever you want.
- You are free to build upon and extend the code and use it in your projects (provided your new projects are licensed under GPL too).
- You can even turn around and re-sell that code to someone else.
Although there are some rules (like how to license new projects), the main gist of it is: you’re largely free to do whatever you want with GPL code.
WordPress is so wildly successful largely because it’s licensed under GPL, which gives people so much freedom to work on the project and build plugins/themes.
Now let’s look at why I love GPL. 🙂
It helped me learn how to code.
I have no doubt that I wouldn’t be where I am today if not for the freedoms that GPL provides. Being able to look at other peoples’ code, dissect it, and adapt it for my own projects has taught me so much—far more than any courses I’ve taken.
I’ve worked with a few closed source platforms, and it’s so hard to learn ANYTHING when you can’t wade through the code and understand it. You have to rely on documentation (which can often leave much to be desired).
I can make my code better.
Sometimes I’ll come across a plugin doing something really cool or just doing something really well. For example:
- Creating Customizer pages for plugin settings (and overriding the preview).
- Brilliantly leveraging the settings API in a way that’s easier to manage.
- Super cool implementation of using the media frame to add content to the visual editor (with previews).
For the most part, those plugins are in a totally different area/niche from the plugins I create. And yet, they all have features or code that have inspired me and helped me make my own plugins even better.
My business isn’t “competing” with any of those plugins, but they’ve still been able to help me. And hopefully my code has been able to help someone else.
With GPL, we can:
- Share features and code (even across niches).
- Contribute to that code to help make it even better.
- Push each other to do the best job possible.
- Create an environment that makes it so easy to learn and improve as a coder.
I wasn’t always a GPL fan.
I grew up in an environment that shamed copying, sharing, and borrowing. Perhaps it’s because my first love was art rather than code, the art community (at least the one I was in) largely focused on, “DO NOT STEAL. DO NOT COPY. DO NOT BE ‘INSPIRED BY’. PROTECT YOUR WORK.” And I’m not now saying those are bad things, but that’s kind of how I grew up.
So by the time I found WordPress, I was naturally drawn to be one of those people that didn’t understand GPL and tried to slap arbitrary requirements on my products, like:
- Do not remove my credit link.
- Do not share or redistribute this theme to anyone else.
- la la la
But somewhere along the line, I finally got it.
First, I finally understood what the hell GPL was and how it applied to the plugins and themes I created. But at first I went along with it a little begrudgingly.
But then, somewhere I came to actually love and appreciate GPL. Maybe because I realized that I wouldn’t be where I was today without it, and it actually felt like a huge slap in the face to find WordPress work licensed under anything but GPL. Now my logic is a bit like this when I see a theme that isn’t GPL:
- You were able to make this theme because WordPress is licensed under GPL.
- You were able to start your business because of GPL.
- You are probably successful because of GPL.
- Now you turn around and deny your customers the same freedoms that WordPress and GPL gave you.
That being said, I understand that coming to terms with GPL can be a process—just like the one I went through. Although it’s not “right” to violate the GPL when releasing derivatives, I get that some people need to go through a process before they can understand and appreciate GPL.