Explainers
What is open source software? Licenses and what they mean
Open source means a license lets anyone use, study, change and share the code. Compare MIT, Apache, GPL and AGPL, and learn what to check before you adopt one.
Open source software is software whose source code is published under a license that lets people use it for any purpose, study it, change it and share the changes. The Open Source Initiative (OSI) publishes the Open Source Definition that sets the test. Open source is a property of the license, not of the price, and it does not by itself say anything about privacy, support or whether a company will keep the project alive.
Open source, source available and free of charge
Three terms get mixed up.
- Open source means the license meets the Open Source Definition. Among other things, the license must allow free redistribution, provide access to the source code, allow derived works, avoid discriminating against people or fields of use, and not restrict other software.
- Source available means the code can be read, but the license does not meet that definition. Often the license limits commercial use, competing products or redistribution. The listing for tldraw is an example: its source is public, but it is licensed under tldraw's own license, not an open-source license.
- Free of charge describes price only. A closed app can cost nothing. Obsidian's core app is free without limits for personal and commercial use, and its listing marks it as not open source.
The Free Software Foundation draws a related line between "free" as in freedom and "free" as in price. Its definition of free software centers on four freedoms: to run, study, change and share the program. It also says that open source "has a very different philosophy" from free software, although nearly all open-source programs are free in its sense too. For everyday purposes, the practical question is whether the license grants the rights you need.
Common licenses in one table
| License | Type | What it asks of people who share or modify the code | Examples in the directory |
|---|---|---|---|
| MIT | Permissive | Keep the copyright and license notice. Otherwise you can use, change and sell the code. | Excalidraw |
| Apache-2.0 | Permissive | Keep notices, state changes, and accept an express patent license from contributors that ends if you sue over the work. | Zulip, Kopia |
| GPL-3.0 | Copyleft | If you distribute a modified version, you must release it under the same license. | CopyQ, Ditto |
| AGPL-3.0 | Network copyleft | The GPL duties, plus: if you run a modified version as a network service, you must offer its source to the users of that service. | Joplin, Logseq, Mattermost, Vikunja |
Permissive licenses let companies build closed products on the code. Copyleft licenses keep derivative versions open when they are shared. The AGPL extends that requirement to software run on a server. The Free Software Foundation says its purpose is to address programs that are often used on servers, where ordinary GPL duties may never be triggered. Licenses are long, and this table is a summary. Read the license file itself before you make a commitment.
What open source means for privacy, cost and support
Privacy. Open source lets outsiders read the code, so claims about data handling can be checked against it. It does not guarantee that a published binary matches the published source, and few users read code. Look for an app's network behavior in its documentation, and check whether the source you can read is the code that runs on your device.
Cost. Open-source software is often free to use and free to host yourself. Hosting, updates, backups and administration then become your costs, in time or money. Some projects are open core: the core is open source and paid editions add features. The listing for Mattermost says its source is open while paid Enterprise editions add features for regulated organizations. Zulip is free to self-host, and its hosted Zulip Cloud has a free plan for eligible groups.
Support. Community forums and issue trackers can answer questions, but they carry no service commitment. Some companies sell support contracts. Before you depend on a project, decide what happens if a bug blocks you on a Tuesday and no one answers.
What to check before adopting open-source software
- The license. Find the LICENSE file in the repository and confirm the license name. The OSI publishes a list of licenses it has approved.
- Which version is open. Check whether features you need sit in the open edition or in a paid one.
- Who maintains it. A company, a foundation or a few volunteers each carry different risks. Note how many people commit regularly.
- Recent activity. Look at the latest releases and how quickly security issues are answered. Ask the project where it publishes security notices.
- Trademarks. An open-source license does not usually grant rights to the project's name or logo. Forks often have to rename.
- Data formats and export. Open code does not guarantee open data. Confirm that you can export your files in a documented format.
- Dependencies. Other libraries under the project may carry different licenses. Tools that check this exist, and they are worth running for anything you ship.
Open source affects who can inspect, change and continue the software. It does not decide whether your data is safe. For that, read about end-to-end encryption and about local-first storage.
What to do next
If you want an open-source option in a category, start with the rankings and then filter for open-source tools. The note-taking apps ranking and the team chat ranking list the products that carry an open-source label, and each product page states its license. Check the license against the list above before you adopt one.
Mentioned in this article
JoplinOpen-source notes with Markdown, sync and end-to-end encryption
LogseqOpen-source outliner for linked notes and a daily journal
MattermostSelf-hosted team chat for private cloud and air-gapped networks
ZulipOpen-source team chat that you can host yourself or use in the cloud
ExcalidrawOpen-source whiteboard for diagrams with a hand-drawn look
tldrawInfinite canvas whiteboard that needs no sign-up