Back to license.wtf
License Parameters Explained
Understanding what each license parameter means and how it affects your project.
These are the factors we consider when recommending licenses.
Can others use your code to make money — including in closed-source, for-profit products?
💡 Why it matters
Some creators are okay with others building commercial products from their code, others want to prevent it (e.g., artists, educators).
🎯 Real-world scenario
"You write a cool text-to-speech engine. A company bundles it into their product and sells it — is that okay with you?"
📋 How licenses differ
MIT
Apache-2.0
GPL-3.0
Creative Commons Non-Commercial (CC-BY-NC)
Does someone need to credit you if they use your code?
💡 Why it matters
This is about recognition. Do you want your name listed in the project using your code?
🎯 Real-world scenario
"Someone includes your library in a mobile app. Do they need to include 'Built with X by @you' somewhere?"
📋 How licenses differ
MIT
Apache-2.0
GPL-3.0
WTFPL
Unlicense
If someone changes your code, do they have to release their changes too?
💡 Why it matters
Copyleft licenses ensure the open-source ecosystem continues — forks of your project can't go closed-source.
🎯 Real-world scenario
"A company modifies your code and uses it in a product. Do they have to release their modified code?"
📋 How licenses differ
MIT (Do whatever)
BSD (Do whatever)
LGPL (Only modifications to your code must be shared)
GPL (Entire project must be open)
Does the license protect users from patent lawsuits by contributors?
💡 Why it matters
If someone contributes to your project and holds a patent, they could potentially sue users — unless the license prevents that.
🎯 Real-world scenario
"A contributor adds a feature and later claims it violates their patent. Are you protected?"
📋 How licenses differ
Apache-2.0
GPL-3.0
MIT
BSD
GPL-2.0
Can your code be used in locked-down hardware where users can't modify it?
💡 Why it matters
Some companies use open-source code in devices (like smart TVs) but make it impossible for users to change it. GPL-3.0 blocks this.
🎯 Real-world scenario
"Your code runs on a Wi-Fi router. Can the user replace it with their own version, or does the device prevent that?"
📋 How licenses differ
GPL-3.0
MIT
Apache-2.0
GPL-2.0
How many restrictions are there on reuse, remixing, and integration with other code?
💡 Why it matters
Permissive licenses allow your code to be reused more easily, even in closed projects. Restrictive ones enforce open-source behavior.
🎯 Real-world scenario
"A startup wants to use your code in a commercial SaaS product. How much legal work do they have to do?"
Can this license be used together with other popular licenses in one project?
💡 Why it matters
In real-world software, dependencies often have different licenses. Compatibility ensures they can legally coexist.
🎯 Real-world scenario
"You want to use both MIT and GPL code in your project. Are you legally allowed to distribute it?"
📋 How licenses differ
MIT
Apache-2.0
GPL-3.0 (Apache-2.0 compatible)
GPL-2.0 (not Apache-2.0 compatible)
Can others relicense your code under a different license?
💡 Why it matters
If your license allows relicensing, someone could include your code in a larger work and change the licensing terms.
🎯 Real-world scenario
"Your MIT-licensed code gets pulled into a GPL project. Now the combined project is under GPL. Is that okay with you?"
Does the license specify which country's laws apply to disputes?
💡 Why it matters
Legal interpretation varies between countries. A license with specified jurisdiction (like Apache's US-focus) offers clarity in court.
🎯 Real-world scenario
"A license dispute goes to court. Which country's laws decide the outcome?"
📋 How licenses differ
Apache-2.0 (U.S. law)
MIT
BSD-3-Clause
GPL-3.0