How to Sell GPL Software (and avoid being a jerk about it)

Jan 26th 2023

Whenever we work with open source software, this question invariably comes up, "How do you make money?" This is especially true when it comes to Blender add-ons, which do need to comply with the terms of the GPL. Let's get into it.

There’s a lot of ways that we can approach this topic, but I suppose it all really starts with the answer to this question: “What in the world is the GPL, anyway?”

Definitions are a good thing. They’re how we ensure that we’re all talking about the same thing. For the purposes of this post, the GPL is shorthand for the GNU General Public License. It’s a contract, based in copyright law, that sits at the foundation of many free and open source software applications, including Blender. In a way, most open source software wouldn’t exist without the GPL.

See, when you make something—anything—in most countries, you automatically have a copyright on that specific thing. No one can reproduce or modify that thing without your say-so. You give that approval by using a contract. This contract gives specific other people specific rights (licenses) to copy or change your thing, under circumstances that you both agree upon. You know that wall of legal text that no one reads, but clicks “OK” for on proprietary software? That’s a contract, a licensing agreement, and you agreed to it.

In my experience, people dislike writing these agreements almost as much as we all dislike reading them. So there are a wide array of templates, boilerplates, or commonly-accepted licenses with language that people are already familiar with and can agree to. The GPL is one of these licensing agreements, and it’s specific to software. What makes it special and different from other licensing agreements is the stuff in those agreed circumstances for copying or modifying.

Simply put, the GPL says anyone who receives software under this license is entitled to the source code used to create it. They’re allowed to share that software with anyone else and they’re allowed to change it however they want. However, if they share, the GPL is still the license that they use to share, even for the changes that they’ve made. That means that all of the source code must be available to anyone who receives the software, and those people are allowed to reproduce and modify the software all they want.

Bringing this back to the context of the 3D suite that we all know and love, Blender is released under the terms of the GPL. This (and a whole bunch of infrastructure that the Blender development team maintains) is how Blender continues to get people from all over the world to contribute features, improvements, and bug fixes. It’s the thing that ensures Blender will be available for everyone, forever.

It’s also the reason why any add-on you write for Blender must be compatible with the GPL, if not using that exact license.

“So how do I make money selling software that anyone can copy or change?” That’s the question that almost always comes up next. You put a lot of work into your add-on. At the very least, you’d like to recoup the cost of all that time and effort. How can you hope to do that when the thing you’re selling can be freely copied and shared by anyone?

That’s the thing, though. You’re not selling software. You never were.

What are you selling, then? Well, a lot of people will tell you that you’re selling support and continued maintenance on the thing you’ve created. While that’s certainly true, particularly when you’re trying to keep up with the speed of Blender’s development, I don’t think it gets to the root of things. What you’re actually selling is a promise. If you’ve made an add-on, you’ve created a tool that improves or simplifies the work of a Blender user. You’re selling the promise that the work you’ve done will make their lives better. You’re also selling the promise that you’ll be there when they need help, whether it’s with using your solution or ensuring that your tool continues to work with the latest version of Blender.

Every purchase is personal, especially within the Blender community. The number of Blender users grows every year, but we’re still small enough to know that there are individuals doing the work of making Blender better, and we know who those individuals are. As an add-on creator, you’re one of them. What you’re selling is the promise that your solution improves the lives of Blender users and that you’ll continue to ensure that it keeps working. And the GPL actually helps reaffirm that promise.

You're not selling software. You never were.

I can hear the rebuttals already, “Selling promises? Really?” Yes. Really. And you want to know something else? It actually works. The Blender Market has an 8-year track record and over 20 million dollars paid to Blender Market Creators that proves the point. It’s no exaggeration to say that people are earning their entire livelihood selling GPL-licensed tools.

Need more proof? Let’s look outside the Blender ecosystem. How about WordPress? You know, the most popular tool for building and maintaining websites. WordPress is open source, like Blender. Also, like Blender, there’s an incredibly vibrant ecosystem of extensions for WordPress. All of those extensions also have to be GPL-compliant. What’s different? The commercial ecosystem for WordPress is bigger. Much bigger. There are even more people making a living selling GPL-compliant tools there, and they’ve been doing it for even longer.

So it comes down to this: In an open source ecosystem, the source code isn’t the only thing that comes with the product. It also ships with support, maintenance, confidence, and trust. That’s what you’re selling. And yes, you can absolutely make money that way, earn a living, even. It’s because the source code isn’t the product. Your promise is.

Stick around! This is the start to a whole series of articles about Blender and the GPL, useful for both content creators and tool creators! The next post in this series is a comprehensive guide on everything you need to do to make sure your Blender add-on is GPL-compliant.


Jason van Gumster