BSD License Explained — Plain English Guide (2-Clause, 3-Clause & Commercial Use)
The BSD License is a family of permissive open-source licenses, ranging from the zero-restriction BSD 0-Clause to the attribution-requiring BSD 2-Clause and the no-endorsement 3-Clause — all allowing commercial use with minimal conditions. It’s the license behind the BSD operating systems, NGINX, Redis, and Go Programming Language.
What You’ll Learn
By the end of this guide, you’ll understand the differences between BSD 2-Clause and 3-Clause, whether you can use BSD-licensed code in commercial products, what the endorsement clause means for your marketing, and how BSD compares to the nearly identical MIT License.
Why It Matters
The BSD licenses are among the simplest open-source licenses. But the subtle difference between 2-Clause and 3-Clause matters when you’re using the code in commercial products or referencing the project in your marketing. Using BSD 3-Clause code in your product’s testimonials page without understanding the endorsement clause could get you into trouble.
Real-World Use
Your company builds a high-traffic web application using NGINX (BSD 2-Clause) as the reverse proxy and Redis (BSD 3-Clause) for caching. You sell the app as a commercial product. Both licenses allow this freely. But when you publish a case study saying “Powered by NGINX and Redis,” the BSD 3-Clause on Redis means you can’t imply that Redis developers endorse your product — you can only state factual use.
Quick Reference
| Permissions ✅ | Conditions 📋 | Limitations ❌ |
|---|---|---|
| Commercial use ✅ | License and copyright notice must be included 📋 | No liability ❌ |
| Modification ✅ | [3-Clause only] No endorsement of derived works 📋 | No warranty ❌ |
| Distribution ✅ | ||
| Private use ✅ | ||
| Sublicensing ✅ |
BSD 2-Clause vs BSD 3-Clause: The Difference
BSD 2-Clause (Simplified BSD / FreeBSD License)
Two conditions:
- Redistributions of source code must retain the copyright notice
- Redistributions in binary form must reproduce the copyright notice in documentation
That’s it. Functionally identical to the MIT License.
BSD 3-Clause (Revised BSD / New BSD License)
Adds a third condition: 3. Neither the name of the copyright holder nor its contributors may be used to endorse or promote derived products without permission
This is the endorsement clause. It prevents you from using the project’s name or contributors to suggest they approve of or support your product.
BSD 0-Clause (Zero-Clause BSD / Free Public License)
The most permissive license of all. No conditions — just a copyright disclaimer. You can use it without any attribution. Rarely used because developers generally appreciate some credit.
Can I Use BSD Code in Commercial Products?
Yes — all BSD variants allow commercial use. Like MIT, BSD licenses let you:
- Use BSD code in proprietary commercial products
- Sell products containing BSD code
- Modify BSD code and keep your modifications private
- Include BSD code in SaaS products without source disclosure
The only difference between variants is attribution requirements:
- 0-Clause: No attribution needed
- 2-Clause: Must retain copyright notice (same as MIT)
- 3-Clause: Must retain copyright notice + no endorsement
Real-World Projects Using BSD License
| Project | Variant | Notes |
|---|---|---|
| Go programming language | BSD 3-Clause | Google’s choice for the language and tools. |
| NGINX | BSD 2-Clause | World’s most popular web server. Used commercially almost everywhere. |
| Redis | BSD 3-Clause | In-memory data store. Recently added a license change for some modules. |
| FreeBSD | BSD 2-Clause | The BSD operating system itself. The license was written for it. |
| OpenBSD | BSD 3-Clause | Security-focused BSD variant. |
| NetBSD | BSD 2-Clause | Portable BSD variant. |
| Erlang/OTP | Apache 2.0 (historically BSD-like) | Telecom-grade runtime. |
| Nginx Unit | Apache 2.0 (migrated from BSD 2-Clause) | Application server from NGINX. |
The Endorsement Clause Explained (BSD 3-Clause)
The third clause of BSD 3-Clause reads:
Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this Software without specific prior written permission.
This means:
- You cannot say “Redis recommends this product” on your website
- You cannot use the FreeBSD operating system logo in your marketing to imply endorsement
- You can say “Built with Redis” or “Runs on FreeBSD” — factual use descriptions
- You can include the project in a “Technologies We Use” list
Practical Example
Allowed: “Our caching layer uses Redis” ✅
Not Allowed: “Redis officially recommends our caching solution” ❌ (without permission)
Not Allowed: Using the Redis logo with “Endorsed by Redis” ❌
This matters because companies love to display open-source project logos on their “Built With” pages. BSD 3-Clause says: show the logo, but don’t imply endorsement without asking.
Real-World Example: Go Programming Language
The Go programming language uses BSD 3-Clause. Here’s what it means in practice:
- Google can sell Go-based products (they do, in cloud services)
- {Your company} can build commercial software in Go — no restrictions
- {Your company} can modify the Go compiler and distribute it — must retain Go’s copyright notice
- {Your company} can’t say “Google endorses our Go product” without asking
Go is a perfect example of BSD 3-Clause in action: corporate-backed, widely used commercially, with trademark protections built into the license’s endorsement clause.
BSD vs MIT: What’s the Difference?
Functionally, BSD 2-Clause and MIT are nearly identical. The differences are:
| Aspect | MIT | BSD 2-Clause | BSD 3-Clause |
|---|---|---|---|
| Commercial use | ✅ | ✅ | ✅ |
| Copyright notice must stay | ✅ | ✅ | ✅ |
| Endorsement restriction | ❌ | ❌ | ✅ |
| Wording style | Informal, short | Formal, “shall/may” | Formal, “shall/may” |
| Patent grant | ❌ | ❌ | ❌ |
| Famous projects | React, Node.js, jQuery, Rails | NGINX, FreeBSD | Go, Redis, OpenBSD |
Historical Context
MIT was written by the Massachusetts Institute of Technology. BSD was written by the University of California, Berkeley. The BSD 3-Clause’s endorsement clause was added after a legal dispute where the university objected to companies using “Berkeley” to imply endorsement. In 1999, UC Berkeley removed the advertising clause (which was even more restrictive), creating what we now call BSD 3-Clause.
Common Misconceptions
“BSD code can’t be used in commercial products”
False — all BSD variants explicitly allow commercial use. The BSD licenses were literally written to allow companies to use university research in commercial products.
“BSD 3-Clause means I can’t use the project name at all”
No. You just can’t imply endorsement. You can still describe factual use: “Our service uses NGINX and Redis.”
“BSD 3-Clause is the same as MIT”
Close, but not identical. BSD 3-Clause has the endorsement restriction, MIT doesn’t. MIT is slightly simpler and more popular.
“BSD 2-Clause is more restrictive than MIT”
They’re nearly identical in effect. The BSD 2-Clause uses more formal language (“redistributions… must retain…”), but the legal obligations are the same as MIT.
“I need to display the BSD license in my app’s UI”
Only if the license requires it in “documentation and/or other materials.” For BSD 2/3-Clause, the text says “documentation” — so a credits page or LICENSE file suffices. You don’t need an in-app banner.
BSD Compliance Checklist
- Verified which BSD variant applies (check the project’s
LICENSEfile) - Retained copyright header in each source file you include
- If BSD 3-Clause: reviewed your marketing materials for endorsement language
- Included the full license text in your distribution
- If binary distribution: included license text in documentation or installer
Example: BSD 2-Clause Notice
Copyright (c) 2024 Original Author. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.When to Choose BSD
Choose BSD for your own projects when:
- You want permissive licensing but prefer formal legal language (BSD is more lawyer-friendly than MIT)
- You care about not having your name used to endorse products (choose BSD 3-Clause)
- You’re contributing to the BSD operating systems or their ecosystem
- You want the simplest possible license (choose BSD 0-Clause)
Avoid BSD when:
- You want patent protection for contributors (choose Apache License 2.0)
- You want the most widely recognized license (MIT has more recognition)
- You want copyleft (choose GNU GPL)
- You want no attribution requirement at all (choose BSD 0-Clause or CC0)
FAQ
License Spectrum
graph LR
A[Public Domain / CC0] --> B[BSD 0-Clause]
B --> C[MIT / BSD 2-Clause]
C --> D[BSD 3-Clause]
D --> E[Apache 2.0]
E --> F[LGPL]
F --> G[GPLv3]
G --> H[AGPLv3]
style C fill:#90EE90
style D fill:#90EE90
Practice Questions
You build a commercial product using NGINX (BSD 2-Clause). What are your obligations? Include the BSD 2-Clause copyright notice with your distribution. No other requirements.
Your marketing page says “As recommended by the developers of Redis.” Your legal team objects. Why? Redis uses BSD 3-Clause, which prohibits using the project’s name to imply endorsement without written permission.
Can you take FreeBSD’s code, modify it, and sell it as a proprietary product? Yes. FreeBSD is BSD 2-Clause. You must retain the copyright notice but can close your modifications.
What’s the practical difference between BSD 2-Clause and MIT for your project? Almost none. BSD 2-Clause uses more formal language; MIT is simpler. Most developers choose based on familiarity or ecosystem convention.
You find BSD 3-Clause code in a competitor’s product with no attribution. What action can you take? Only the copyright holder (the original author or project) can enforce the license. Report the violation to them.
Mini Project: License Header Review
- Choose a BSD-licensed project (like Redis or Go)
- Examine the license headers in 5 source files from different directories
- Verify each header contains the correct BSD variant text
- Check the project’s
LICENSEfile matches the headers - Create a report documenting whether the project is compliant with its own license
Challenge: Find a notable open-source project that switched from BSD 3-Clause to a different license (for example, Redis adding SSPL for some modules). Read the announcement and community reaction. Write a summary of why the change happened and how the community responded.
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. This guide is for educational purposes and does not constitute legal advice. Consult an attorney for specific licensing questions.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro