Blog: Standardize Commercial Software Licensing

There’s some code in this license project!


Really exciting! Will try it out, and send feedback.

1 Like

This is wonderful. Exactly what I wanted. (licensezero was so close.) Here are my notes:

  1. I love the comments on Patents (e.g., “common compromise”, “good for the customer”). It would be great to have these kinds of comments for Governing Law and Dispute Resolution. I imagine one of the Dispute Resolution options is a (slightly) better bet, at least for open source developers.
  2. It’s sobering to know that this is the simplest route. Two docx files, one of which needs to be completed, printed out, and signed using a pen. Is there anything simpler? For example, after receiving payment for Super Counter can one just give the buyer a zip which contains the buyer-specific license? Does the buyer need to sign anything? For small dollar deals (<$500/year) it would be great to avoid the hassle of signing.
1 Like

Exactly what I though when I read it and tried it out.

I’d be interested in whether it would it make sense to include a choice about the right to sub-license? Is there a reason there isn’t?

I’ve just added some notes to governing law and dispute resolution choices.

It’s harder to say anything general about the venue options, since many of them depend on which governing law you want. For example, if you choose New York governing law, largest city means NYC while capital means Albany. If you choose California, Sacramento is eight hours’ drive from San Diego.

I wouldn’t say this is the simplest route. This is just reflective of how companies license software from other companies, through procurement departments.

You need a set of legal terms and you need a document setting out the details, like what software is getting licensed and how much they’ll pay. But the “ordering document” could as easily be an online checkout page that links to the legal terms and makes clear the customer is entering into an agreement. That’s actually fairly common among companies that do so some sales self-serve, on their website, and some sales more traditionally, through a salesperson.

Sublicensing is a kind of implementation detail. Sometimes company licenses get written so the company “sublicenses” its employees. This is how the IndieCC paid license is written. Sometimes company licenses get written so they license those people directly, which is what PolyForm Commercial currently does. The effect is the same.

Usually when folks ask about sublicensing, they’re thinking about some kind of reseller agreement, rather than an end-user license. There are all kinds of names for these deals: software reseller, value added reseller, system integrator, and so on. The basic idea is that you sell your software to one company, who turns around and sells it to others in turn. One way or another, you make money when they make sales. They essentially become part of your sales team.

Those agreements are usually both fundamentally different from, and more complicated than, “end-user” agreements. They have to deal with the kinds of relationships the reseller can have with its customers, not just the relationship between the developer and the reseller.

Consider audit and reporting: the part of the deal that makes sure you’re getting paid everything you’re owed. In an end-user agreement, you might have an audit right to make sure they’re not blowing through their users limit without paying you more. Right now, we offer three choices there: software phones home, customer self-reports, or an audit right. With a reseller, you need to make sure they’re paying you your part of every end-user sale, and also that every end-user customer is paying for all their usage. So there’s a question about whether and how reporting and audit will work at each of those levels. And also a question about who’s responsible for checking on end-users: the reseller, the vendor, either of them?

Meanwhile, it’s a totally open question whether the reseller will even want to use the software themself. They often don’t. Or they only need to use it for demos to customers.

I don’t see the same opportunity to standardize software resale as I do direct end-user licensing. The deals are just too different, and a lot of them involve situations where the seller doesn’t have much leverage. Selling through an app store, for example. Or selling to a big company, but getting told they want to buy through their standby reseller. That sort of thing.

1 Like

This is neat! I was at one point considering something similar specifically for public source-available licenses, with optional clauses for copyleft, bounds on commercial use, ethics restrictions, etc. but never really got around to doing the writing. Maybe I’ll dust that off one of these days, or maybe someone else will beat me to the punch. I think the idea of a Creative Commons-style “pick what you want and there’s a license within this family that’ll do that for you” project for (post-)open-source has merit, but also would take a lot of work to really develop.

I did a similar experiment some years back, using a script to generate the powerset of all valid open source license terms and generating them all, using a library of snippets.

The project itself didn’t advance beyond proof of concept. But the Blue Oak Model License probably wouldn’t exist if I hadn’t had those snippets laying around. The prior work made it easier to draft a model license than a statement of the criteria we wanted in a good permissive license.

Another toy project, Dice License, used automated license composition to make a different point. The web app only spit out permissive licenses, not copyleft. But it used randomness, different implementations of each term, and tricks like rephrasing and British spelling to make thousands and thousands of functionally equivalent permissive open source licenses, each to order. You could click the button six times and get six perfectly valid permissive open source software licenses, none of which anybody had ever seen.

1 Like


Modification Rights
If the customer gets source code, can they change the software?

Can there be a “Must Contribute Modifications Back” option