Quick Answer
Open source software is software whose code is publicly available. Anyone can read it, use it, modify it, and distribute it, subject to the terms of the licence. This is how most of the infrastructure of the internet was built: collectively, by thousands of contributors around the world.
A dark industrial cylinder projecting rows of red light points onto a surface: a single source broadcasting openly to everyone in range.
Open source is code that projects outward. Anyone can read it, copy it, modify it, and send changes back. The original source keeps emitting. The community shapes what reflects back.

The idea behind open source

Most commercial software, Microsoft Word, Adobe Photoshop, Salesforce, is proprietary. The company keeps the source code private. You can use the software but you cannot see how it works, change it, or build on top of it.

Open source inverts this. The code is public. Anyone can:

  • Read it to understand how it works
  • Report bugs and verify they are fixed
  • Modify it for their own needs
  • Contribute improvements back
  • Build new software on top of it

The most successful projects attract thousands of contributors from around the world, improving the software faster than any single company could.

Why most of the internet runs on open source

When you visit almost any website or use almost any app, the underlying infrastructure was built on open source:

  • Linux, the operating system running the vast majority of the world’s servers, all Android phones, and the foundation of macOS. Free and open since 1991.
  • PostgreSQL, MySQL, the relational databases storing enormous amounts of the world’s structured data
  • Python, Node.js, Go, Rust, the languages that power most modern backend services
  • React, Vue, Angular, the frameworks that build the user interfaces of most web apps
  • Kubernetes, Docker, the container orchestration and packaging tools used to deploy software at scale
  • Linux kernel in Android, every Android device runs Linux at its core

Google, Meta, Amazon, and Microsoft all contribute heavily to open source because they benefit from these shared foundations improving collectively. They also release their own tools as open source (TensorFlow, React, Kubernetes, VS Code) to attract developers to their ecosystems.

Open source licences

Open source does not mean “do whatever you want.” Each project has a licence that defines the exact terms of use. The most common ones:

LicenceCommercial useShare alikeNotes
MITYesNoMost permissive. Keep copyright notice. Used by React, jQuery, Ruby on Rails.
Apache 2.0YesNoLike MIT plus an explicit patent grant. Used by Kubernetes, TensorFlow.
GPL v3YesYes, must open source your code“Copyleft”, your software must also be GPL if distributed. Used by Linux kernel (v2), Git, WordPress.
LGPLYesOnly the library itselfA weaker copyleft for libraries. Using an LGPL library does not force your whole app to be open.
AGPLYesYes, includes network useLike GPL but also applies if you run the software as a service (SaaS). MongoDB switched to AGPL.
BSL / SSPLRestricted,“Source available” but not truly open source. Used by some companies to prevent cloud providers competing.

choosealicense.com is the clearest guide to picking a licence for your own project and understanding what others’ licences mean.

How open source is funded

Open source software is often assumed to be volunteer work, but there are sustainable funding models:

  • Company-backed projects: React (Meta), Go (Google), VS Code (Microsoft), Kubernetes (Google/CNCF)
  • Foundation-sponsored: Linux (Linux Foundation), Python (PSF), Rust (Rust Foundation), Apache (Apache Software Foundation)
  • Dual licensing: The project is open source for open source use, but commercial users pay for a licence (MySQL, GitLab)
  • Open core: Core product is open source; enterprise features are proprietary (MongoDB, Elastic)
  • Sponsorships: GitHub Sponsors, Open Collective, Patreon, individuals and companies fund maintainers directly

Many critical open source projects remain underfunded, maintained by one or two volunteers. The Log4Shell vulnerability in 2021 exposed this: a library maintained by volunteers was embedded in millions of enterprise systems.

How to use open source in your project

When you build software, you almost never start from scratch. You use packages, bundles of open source code published by others, installed via package managers:

bash
npm install react            # JavaScript/TypeScript
pip install fastapi          # Python
cargo add tokio              # Rust
go get github.com/gin-gonic/gin  # Go

The package manager downloads the code, records which exact version you are using (in a lock file), and manages updates. The lock file is crucial: it ensures every developer on the team and every server in production runs exactly the same dependency versions.

Before using a package, check:

  1. Its licence, is commercial use allowed for your project?
  2. Its maintenance status, is it actively maintained? When was the last release?
  3. Its download count, widely used packages tend to be better maintained
  4. Its security record, does it have known vulnerabilities? (Snyk Advisor helps)

How to contribute to open source

If you find a bug or want to add a feature to an open source project:

  1. Read CONTRIBUTING.md, most projects have guidelines for contributors
  2. Find an issue, look for “good first issue” labels for newcomers
  3. Fork the repository on GitHub (creates your own copy)
  4. Clone your fork locally
  5. Create a branch for your change (fix/issue-42-null-pointer)
  6. Make your change and write a test if applicable
  7. Open a Pull Request to the original repository
  8. Respond to review feedback, maintainers will suggest changes
  9. Get merged, your contribution is now part of the project, used by everyone

First Contributions walks through this entire flow with a practice repository specifically for first-time contributors.

Further reading

What’s next

Next: What is a Server? , where code actually runs when it is not running on your laptop.