Internet PiracyI recently had an exchange with a commercial theme developer who changed his terms away from the GPL because of an experience with some rude person who was redistributing his themes for free. Ultimately, I wasn’t able to convince him to stick with it, but there was a clear misunderstanding of the GPL in the first place there (I suspect that language differences played some part), and I thought this might make for an interesting blog post.

(Note that I’m talking about themes, but this all applies to commercial plugins as well as any other code you’re selling online.)

It’s All About Redistribution

The main barrier to the GPL that a lot of theme developers have expressed is the right of redistribution. That is to say that if you sell me a GPL’d theme, then I can turn around and give that theme to anybody I want, for free, and you have no recourse.

This viewpoint is entirely correct, however it’s missing the big picture, I feel.

Why Would I Do That?

First off, why would I take something I paid for and then give it away to everybody else for free? I mean, it’s one thing to give a copy of something to a friend of mine for his use, but it’s wholly another to go to the effort of setting up a website to distribute your theme as some kind of “screw you” policy. Did you anger me in some way? What level of maliciousness would be necessary for me to want to do that? Seems a bit overboard, and most people are ultimately reasonable.

However, this ignores the existence of John Gabriel’s Greater Internet Fuckwad Theory. Which is to say that some people are just trolling bastards who will screw with you just because they can. So let’s say that somebody gets a copy of your themes, posts them online, then refuses to take them down despite your polite requests, and waves the GPL in your face for his right to redistribute them.

Technically, this sort of person is correct, he does have the right of redistribution. But that doesn’t really matter.

What Are You Selling, Anyway?

Let’s say I made a piece of code and sold it. No GPL, no license, just me selling code to people for their own use. They have no rights to the code whatsoever. So, somebody posts that code online, for free, at some pirate site. Somebody else downloads it, and uses it, without paying me. Straightforward software “piracy”.

What have I lost here? Well, I lost the cash that I could have made from an extra sale, true, assuming that said person would have bought the code instead of pirating it. If you know people who habitually pirate code, then you know that that is a rather dubious claim, at best.

More importantly, I’ve lost a contact point between me and the user of the code. When I sell something to somebody, then I now have a relationship with that person. I get their email address. They may contact me for support. Even paid support. I may have forums for purchasers of my software to talk amongst each other in a community support system. They may buy other things I wrote.

This is the real benefit to selling code, that relationship between me as a developer and them as a purchaser of what I develop. And I’m missing that connection, until they want support from me for my product. Then I may say “well, you’re using a pirated copy of my product, if you want to join my support forums and my community and get my help, then you have to buy the product from me”. Take note of the many times that software companies have offered “clemency” sales and such, to turn pirated copies into legitimate ones.

What it comes down to is simple:

You Can’t Stop Piracy, So Don’t Try.

Think about it, you’re selling a digital file here. Files can be copied. If I buy a copy of your software, strip out any identifying marks, then post it to a thousand torrent sites, what exactly can you do to stop me from doing that?

No matter what your terms and conditions are, people still can copy your files, distribute them, edit them, do whatever they want. Unless you’re actually enforcing your terms with (potentially expensive) legal actions, then your terms are really quite meaningless. Technical measures to stop piracy don’t work, as many game companies have found out over the years. DRM doesn’t (and technically cannot) work.

Instead of viewing people redistributing your code as a bad thing, view it as an opportunity. If somebody downloads a “pirated” copy of your code, and uses it, then clearly they have a use for it. And at some point, they’re going to want upgrades. They’re going to want support. They’re going to want modifications. So make sure that you are the person they come to, and then you have an opportunity to convert that pirated download into a real sale.

The GPL doesn’t screw the developer by allowing others to share his work. The GPL enables the developer to get more contacts (and potentially more sales) by allowing others to share his work along with his name, contact information, website, etc.

Don’t fight against the right of redistribution, make it work for you instead.



  1. Very well said. Nice blog post.

  2. I agree for the most part, but what would scare me if I was a commercial theme developer would be some actually reselling me theme at half price. The GPL gives them the right to take my work and profit from it without adding any value.

    I know you can’t stop pirates, but for that to be legal seems fundamentally wrong.

    • Well, this really comes back to the question of “What are you *really* selling?” The real answer to most people is that you’re selling yourself: your skills, your time, your labor. When you look for an auto mechanic or a plumber, you look for a good one, not just one who has the parts. People behave much the same way, they’re looking for a theme, sure, but when they’re willing to pay for it, then they’re looking to buy support for that theme.

      Software has evolved to the point where it is all basically free. Sure, I can pay for Microsoft Office, or I can download OpenOffice for free if it fits my needs. The majority of the software most people use nowadays is free software. Companies like to use commercial products like MS Office not because it’s better, but because they’re buying from a company who can support them on an ongoing basis. The same model should apply to even the small code developer, really.

      So yeah, somebody certainly can resell GPL’d code, but are people only buying the code or are they buying the services and time of the developer?

  3. “You Can’t Stop Piracy, So Don’t Try.” – Exactly. Going with a non GPL license means you end up putting time into a license that is all but impossible to enforce.

    In regard to the rude person in the first paragraph. Based on our experience, less than 1% of customers are this type. But if you are going to sell any amount of a digital product there is no way you are going to avoid selling something to one of them. Changing to a more restrictive license will not deter any of them from putting your product up on a rapidshare or torrent.

    • Well said – “You Can’t Stop Piracy, So Don’t Try.”

      The only thing I want to add. Developers (of course, only a few) should also take a look on the pricing structure. If it is GPL licensed then don’t forget the morals of “Open source”. There are a lot of people want to spend money but some devs/designers have such pricing that they can’t even *afford* it.

      On the other hand, there are a lot of developers who are just opposite in nature.

  4. You can’t stop piracy, so don’t try

    That’s the best argument that can be made but also the hardest to accept. It took me a long time to actually agree with it. I’ve even had clients offer to pay for a project, provide a 10% or 25% deposit, take the code for review … then leave. Later, I’ve found them re-selling the same code elsewhere. It annoyed me to no end, so I started trying to find ways to embed activation keys and other forms of DRM kill-switches in my code. I started charging cash up-front for entire projects to protect myself and using digital escrow services to make sure things happened entirely above board.

    In the end, though, I was shooting myself in the foot. I spent more time trying to protect myself from having my code stolen than I did actually writing and selling code. Now, just about everything I do is either GPL or some other form of open source license. Just about all of my pirate-level clients have come back at some point and asked for support. I’ve even gotten random checks in the mail from people farther downstream of the pirates to thank me for my code.

    It’s never a good feeling to find someone else redistributing your code without your permission. But there are benefits to it, and if you can set things up right (charge for support) you’ll almost always be better for it. A downstream developer might actually find and patch a bug for you. It’s happened to me at least twice 🙂

  5. Piracy is a huge issue. People rip off Microsoft every minute, pirating their stuff. It just is what it is. Look at the music industry? They’re losing their minds over digital piracy, and much of it is their own doing.

    Over charge for media, don’t kick enough money back to the creator, and you’re shocked that people turn around and hack the Gibson? The same goes for software as music. Look at how much Photoshop costs, and then go check torrent sites to see what the most popularly ripped software is?

    You can either spend money on fighting the pirates or lose money to them. Most developers simply cannot afford to fight the pirates, and I’m unconvinced that the money loss FROM piracy is more or less if you DO fight them (I would guess higher, since people like to take on The Man, ethically speaking).

    Making money off a GPL theme/plugin is just thinking about it differently. If you make it good enough, a charge a fair price, people will come.

    Most of my issues with the paywall is that I want to Try Before I Buy. With Office and Photoshop, I can DL a 30-day trial. That’s really hard to do with Plugins and Themes in my experience.

  6. I like the idea of making it work for you instead of fighting the tide. Piracy is still wrong ethically however instead of wasting resources combating it, get it to work for you. Interesting.

    • Well, that’s the trick, isn’t it? You can’t actually “pirate” GPL software, because the license explicitly gives you the right to redistribute it, modify it, etc., as long as you let other people do the same.

      What the GPL really ensures is that the work remains free-as-in-speech to everybody. That doesn’t mean you can’t sell it, what it means is that if somebody else does modify it, then you can take those modifications back, incorporate them in, and improve your own product using them. Then sell the upgrades. Or give them to your userbase to help ensure continued use and loyalty.

      More to the point, it means that you can take code from other GPL’d projects, incorporate their improvements in, and continue to sell the product. You don’t have to reinvent the wheel all the time to improve your product. Everybody benefits.

  7. […] “Why You Should Use GPL for Commercial Themes,” WordPress expert and core contributor, Otto of Ottopress, recounts a recent exchange with a […]

  8. I read The Cathedral and the Bazaar earlier this month, and ended up with dozens of highlights and notes. Here’s two I really liked in the context of this topic:

    “Most companies would consider that software piracy; we consider it free marketing.”


    Software is largely a service industry operating under the persistent but unfounded delusion that it is a manufacturing industry.

    Both of these quotes come from a chapter, “The Magic Cauldron,” with the latter coming from a section aptly named “The Manufacturing Delusion.” It ought to be required reading.


  9. While I understand (and agree with the point of) the analogy to piracy and the futility of fighting it, the use of that concept to illustrate this point does make me a bit uncomfortable. I realize that Otto doesn’t believe that redistributing GPL’d software is piracy, but it seems that unfortunately some others in the WP community don’t quite understand that, so I fear that using it as an analogy may cause some confusion.

    In response to the sentiment that it “just seems wrong” for people to redistribute commercial WP themes or plugins, I strongly object. Anyone who develops and releases derivative works of GPL software (WordPress) should know what they’re signing up for by doing that. Giving someone else crap for taking actions that are explicitly allowed by the license you distribute under is disingenuous, hypocritical, and just plain wrong.

    The way I see it, there are two main camps in the WP dev community that are disturbed by this aspect of the license:

    #1 – Devs who didn’t take the time to consider and understand the license going in, and now feel like the rug is getting pulled out from under them when they discover that by creating a derivative work based on WP they were inherently agreeing to distribute it under the GPL.

    #2 – People who actually partially understood the GPL going in, at least enough to know that they didn’t want to use it (due to a perceived or real incompatibility with their business model), and then reluctantly switched to the GPL after Matt started getting more vocal about compliance recently, and decided to go with the “yeah, but that’s really not cool, man” approach to redistribution.

    I think the solution for both is the same: learn about the GPL and why it’s actually a good thing. A good place to start might be to understand how the GPL helped make WP (the product they love) as great as it is today; Matt has said a lot on this subject.

    At the end of the day if you still don’t like the GPL and don’t want to use it, that’s OK, Just accept the fact that it also means you can’t base your work on WP, taking advantage of the work of all the people who did choose to support it (by contributing to WP), with the understanding that those freedoms (including redistribution of derivative works) would be preserved as required by the license.

    • People in category #2 are who I was kinda addressing this towards. While it is a bit of a mental leap into the selling-services-and-not-software as a business model, in the long run it works better. If you’re just selling a software package, you can only sell it once to a person. Services (and support) you can sell over and over. Those sort of people that are reluctant to use the GPL because of the right of distribution really need to be shown how to structure their business model to let that distribution drive business back to them. Like Nacin pointed out, “we consider it free marketing” is a really good way to work that angle.

      Plus, spending all your time railing against “pirates” is just unhealthy, man. 🙂

  10. From your perspective you are, of course, perfectly correct in your assertion.

    But piracy is not what we’re talking about, and is an entirely different issue.

    Where GPL struggles is that there’s little in the way of progressive pricing. You can add terms to your support contracts that make it so, but if your client doesn’t want or need support then that’s it – a corporate could reuse your code many times over. Consequently small, honest users pay more in GPL land than large users. The same, kind of, applies in piracy except small and dishonest pay less than the large organisations who tend to be very shy of using pirated software. I’ve seen open source code used extensively in corporates and known for sure that not a penny ever went towards the projects that supplied it.

    So GPL is great for mass market because it gives you numbers amongst people who aren’t going to spend much anyway. It’s also great for coders who want to share code. But it’s not about making a business – it’s about a license. Your business has to come from something else. In Automattic’s case it’s about automated software services (Akismet, VaultPress, VIP hosting) + human services (VIP Support, consultancy) and that works great for them. But to say that all small companies can go in that direction isn’t good, because some just aren’t set up for working with larger markets. We aren’t, and our attempt at a themes club was a failure (pardon the pun.)

    • Okay, so charge large companies more. You’re correct that you can’t really limit the number of times somebody uses the product. If you sell it once, then somebody could use it a bunch of times. But that doesn’t necessarily stop you from offering variable pricing based on whatever-the-heck you want. If your product is worth it to a company, then they’ll pay it.

      As for what you’re selling… well, really, what this comes down to is the fallacy that software is a manufactured good. Generally, it’s not. Software really is a creative expression. The act creating software is a service, just like the act of creating a painting for a commission.

      Think about programming jobs for a moment. How many programmers are there in the world, making a living by writing code? Answer: a lot. How many of them actually make their money by selling software to the public? (Hint: it’s under 10%.)

      Virtually all software made is custom-made. Think of the ATM you use every few days. Was the software in it purchased off-the-shelf? Did they install Microsoft-ATM on it? Think of the software in your TV remote. Or in the TV. Or the software in your refrigerator, keeping itself cool. Almost all software is purpose made. And not just embedded software, go to any major chain store and look at their Point-Of-Sale system really closely. Large companies didn’t buy a POS system off the shelf, they wrote their own, customized for their needs. They employ a large staff of programmers somewhere to manage and change that system.

      Programming, as a job, isn’t about selling product. It’s about writing code. More to the point, it’s about getting paid to write code on a continuing basis. Virtually nobody makes money selling software. Even Microsoft makes the largest share of their money from Office licensing contracts (they make over $13 billion a year from their business division). They’re not selling software, they’re selling systems and configuration and services. Hell, Apple is really a hardware company nowadays.

      Creating software is a service industry, not a retail sales one. So you have to approach it as such, and find those people willing to pay you to create software for their needs. This does mean that you program a lot more code, but that the business you’re in, you know?

      The advantage of structuring your business in this way is that it changes your perspective. If you’re focused on creating a product then selling that product as many times as possible, then you’ll put the most effort into that as you perceive it to be the money maker. However, if you change your outlook to consider the support channel as your main money maker, because that’s where you get your paying customers from, then you’ll put more resources into that, provide better support, gain more customer loyalty, and gain more paying customers.

      The support channel is where an independent programmer is most likely to get paid, not from creating and selling product.

      • For sure – I’ve got a twenty year software career behind me, and only about two of those were involved in working on product for resale.

        As you say, it’s not a manufactured good and you’re selling licenses. You just have to sell an additional license on top of the GPL license you supply the software under. It’s exactly what we do.

        I think SaaS is the answer for many developers today, and that’s a massive growth area right now, and a very lucrative one.

        • Well, not even really selling “licenses” which is really just another way of thinking about the software as a manufactured good. It’s better to think of selling support contracts, perhaps. The business model can be one of many.

          The real problem in thinking of software as an item which you sell is that that is the end of the transaction as far as you think of it, but the customer then expects support. Trying to charge for that support then becomes problematic from their perspective. But you have no choice but to charge for support, because you can’t commit potentially unlimited support time to a one-time purchase price. You price yourself out of the market that way.

          Instead, you have to sell them on the support contract idea on a continuing basis up-front, so that they know what they’re buying. Selling a theme at $60 one-time is basically the same as selling them the theme+support for $5 a month (first year upfront). Then at the end of the year, you can resell them the same support contract for continuing access to your support infrastructure. Continuing business. And if your money is coming from offering support channels and continuing upgrades and such, and you do good work, you’ll have a steady business with loyal clients.

          Improve the support channel, create a continuing sales structure, then sell the same themes you couldn’t make money on with one-time costs, but on a continuing upgrade basis. Perhaps that’s a better model.

  11. […] Krogsgard posted about his thoughts regarding image attachment URLs.Otto shared his thoughts on why the GPL should be used for commercial themes.Jackie Dana attended SXSW and shared her thoughts on it.Next […]

  12. […] can be distributed freely, you will always need the activation code in order to use it.Otto also has another post that discusses usage of the GPL licence, while an example of split licencing can be seen in the […]

  13. […] want to make a living on your code, and that’s certainly a fair-go! But as Otto rightly says, we can’t stop piracy, so why are we trying? DRM doesn’t work, and reverse engineering hasn’t proven sustainable. Maybe we’re […]

  14. Yes, but theme developers are encouraged to offer support for free on at the theme download url.
    Theme users are also encouraged to expect it by the fact that that free support exists.
    If there’s insufficient support then there are a lot of ‘unresolved’ threads and a high chance of negative reviews.

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Need to post PHP code? Wrap it in [php] and [/php] tags.