Open Source
Open source refers to software released with its source code under a license that allows people to use, inspect, modify, and redistribute it. These rights apply to both the original software and versions modified by its users.
Making source code visible is not enough to make a project open source. The license is the deciding factor. It must grant the necessary rights and cannot, for example, prohibit commercial use or restrict the software to a particular industry.
What does open source mean?
With open source software, the recipient receives access to the source code and the rights granted by its license. This makes it possible to understand how the software works, adapt it to specific requirements, build an independent version, or contribute improvements to the original project.
An open source project can be developed by an individual programmer, a community, a nonprofit organization, a public institution, or a commercial company. Open code does not determine how the project is governed or who has the authority to accept changes into its official version.
Users do not have to inspect or modify the code themselves. What matters is that the license gives them and other recipients the legal right to do so.
What requirements must open source software meet?
The Open Source Initiative defines the requirements that an open source license must satisfy. Under the Open Source Definition, the license must, among other things:
- allow the software to be freely redistributed;
- provide access to its source code;
- permit modifications and derived works;
- allow modified versions to be distributed;
- avoid discrimination against any person or group;
- avoid restricting use in a particular field or industry;
- permit commercial use;
- grant the licensed rights to every recipient of the software;
- avoid making those rights dependent on the software being part of a specific product;
- avoid imposing restrictions on independent software distributed alongside it;
- remain technology-neutral.
An open source license may still impose conditions. For example, it may require recipients to preserve copyright notices, include the license text, identify modifications, or release certain derivative works under the same license.
What is source code?
Source code is the human-readable form of a program written in a programming language. It can include PHP, JavaScript, Python, Java, or C++ files, CSS stylesheets, project configuration, build scripts, and other resources needed to develop the software.
For a website, the code available through browser developer tools is not necessarily the complete source code of the system. Visitors may be able to inspect the resulting HTML, CSS, and JavaScript without receiving access to server-side code, databases, configuration, or the original files used to build the application.
Open source code should be provided in a form that programmers can realistically inspect and modify. Deliberately obfuscated code or compiled files without access to the corresponding source do not satisfy this principle.
Is publicly visible code always open source?
No. A public repository that allows visitors to read the project files does not automatically make the project open source. The copyright holder must release the code under an appropriate license.
When a repository has no license, standard copyright restrictions generally continue to apply. The ability to read the code does not automatically grant permission to copy, modify, distribute, or incorporate it into another product.
Before using publicly available code, look for a LICENSE file, licensing information in the documentation, or notices included in individual files. It is also important to verify whether the same license covers every part of the project.
How is open source different from source available?
Source available means that the source code can be inspected, but the terms of use do not provide all the rights required by the Open Source Definition.
A source-available license may, for example:
- prohibit commercial use;
- limit use to education, research, or personal projects;
- prevent someone from offering a competing service;
- restrict use according to company size or number of users;
- require an additional paid license after certain limits are reached;
- allow code inspection while prohibiting the distribution of modifications.
Such a project may provide complete source code and a high degree of transparency, but it should not be described as open source if its license does not meet the recognized criteria.
Does open source mean free of charge?
Not necessarily. Open source describes rights associated with the software and its license, not its price. Open source software can be offered at no cost, sold as a product, or included in a paid service.
A company may charge for:
- a packaged, ready-to-install version of the software;
- hosting and infrastructure;
- automatic updates;
- technical support and guaranteed response times;
- implementation, configuration, and integrations;
- additional modules or services;
- training and documentation;
- a managed cloud version of the application.
A customer who pays for open source software still receives the rights provided by the license. Charging a fee does not make the software proprietary.
How is open source different from freeware?
Freeware is software provided at no monetary cost, usually under a proprietary license. Users can run the program without paying, but they typically do not receive its source code or permission to modify and redistribute it.
Software can therefore be free of charge while remaining closed source. Open source software, on the other hand, can be sold. Freeware and open source describe different characteristics of a product.
How is open source different from free software?
Free software and open source generally refer to software that grants a very similar set of user rights. The distinction is primarily historical and philosophical and concerns how those rights are presented.
The free software movement emphasizes the user’s freedom to run, study, change, and share a program. The term open source is often associated with practical software development, collaboration, code quality, and reuse.
Because the English word “free” can refer either to freedom or to price, the abbreviations FOSS and FLOSS are also used for free and open source software.
How is open source different from the public domain?
Open source software generally remains protected by copyright. The copyright holder uses a license to grant specific rights and establish the conditions under which those rights may be exercised.
Public domain is a copyright concept covering works that are not protected by copyright or whose protection has expired. It is not a license, and its exact meaning can vary between jurisdictions.
Public-domain software may provide broad practical freedoms, but it should not automatically be treated as software released under an approved open source license.
How is open source different from proprietary software?
Proprietary software, also called closed-source software, is distributed under terms controlled by its copyright holder. Its source code is generally unavailable, and the license may restrict copying, modification, inspection, and redistribution.
A customer who purchases proprietary software usually does not acquire ownership of the program or its code. The customer receives a license to use the product within specified limits.
A proprietary product can still include open source components. Many commercial applications combine closed-source code with libraries released under licenses that permit this type of use.
What does an open source license do?
A license specifies what recipients may do with the code and which conditions they must follow. Without a license, standard copyright restrictions apply even when the code appears in a publicly accessible repository.
An open source license can address:
- the right to run the program;
- the right to copy and redistribute it;
- the right to create modified versions;
- the preservation of copyright notices;
- the inclusion of the license text;
- the availability of source code to recipients;
- the licensing of derivative works;
- patent rights;
- warranty disclaimers and limitations of liability.
There is no single set of obligations that applies to every open source project. Before using a component, review its specific license and check whether it is compatible with the other parts of the product.
What are permissive open source licenses?
Permissive licenses allow broad use of the code while imposing a relatively small number of conditions. They usually require recipients to preserve copyright notices and include a copy of the license.
Code released under a permissive license can often be incorporated into proprietary software as long as the license requirements are met. Common permissive licenses include:
- MIT License — a short license that permits use, modification, and redistribution while requiring the copyright and license notices to be preserved;
- Apache License 2.0 — a broad license that includes an express patent grant and requirements related to notices and documenting changes;
- BSD 2-Clause and BSD 3-Clause — licenses with a limited number of conditions that also permit use in closed-source products.
A permissive license does not mean that the code has no conditions. Removing required copyright notices or license text may violate the license.
What is copyleft?
Copyleft is a licensing mechanism that permits code to be modified and redistributed but, in certain situations, requires derivative works to be released under the same or a compatible license.
Its purpose is to preserve the relevant software freedoms in later versions. A person who receives a modified program should obtain rights similar to those received by the developer who created the modification.
Licenses applying different forms of copyleft include:
- GNU GPL — requires covered derivative works to remain under the GPL when they are distributed;
- GNU LGPL — a weaker form of copyleft used mainly for libraries, allowing them to be linked with software under other licenses when its conditions are followed;
- GNU AGPL — extends source code obligations to certain situations in which users interact with a modified program over a network;
- Mozilla Public License 2.0 — generally applies copyleft at the level of the individual licensed files.
Copyleft does not mean that every program stored on the same server or distributed on the same medium automatically receives the same license. The way code is combined, whether a derivative work is created, and the exact license terms all matter.
Can open source software be used commercially?
Yes. Commercial use is a fundamental part of the Open Source Definition. An open source license cannot prohibit businesses or particular industries from using the software.
Companies can also charge for copies, implementations, modifications, hosting, and support. They must still follow the license. When copyleft software is sold and distributed, the seller may need to provide the recipient with corresponding source code and the right to redistribute it.
“Commercial” and “proprietary” are not synonyms. A product can be both commercial and open source.
Can modified open source software be sold?
Generally, yes, as long as the license permits it and its requirements are satisfied. The customer who purchases the modified version may also receive the right to copy or redistribute it.
A software license does not normally grant an automatic right to use the project’s name, logo, or trademarks. A company may permit independent versions of its code while preventing those versions from being presented as official releases of the original product.
Does open source code always have to be published online?
No. The obligations depend on the license and how the software is used. Running a modified program on a personal computer or an internal server generally does not create a public disclosure requirement under the standard GPL.
When the program is distributed to other recipients, a copyleft license may require that they receive access to the corresponding source code. This does not necessarily mean publishing the code for everyone. The obligation may apply specifically to the people or organizations that received the software.
The AGPL can operate differently because it covers certain situations in which users interact with modified software over a network. Its exact requirements should be reviewed before using an AGPL component in a SaaS application.
How does open source work in WordPress?
WordPress is distributed under the GNU GPL version 2 or later. Users can install the system, inspect its code, modify it, and redistribute their own versions as permitted by the license.
According to the WordPress project’s licensing position, code that forms a derivative work of WordPress, including the code of many themes and plugins, should use the GPL or a compatible license. This does not mean that every theme and plugin must be available at no cost. Developers can charge for access to files, updates, technical support, and additional services.
The GPL also does not require a developer to make a custom plugin available to everyone online. When a copy is provided to a client, the rights and obligations arising from the license primarily concern that recipient.
A WordPress website may contain assets governed by different rules, including written content, photographs, logos, fonts, third-party scripts, and SaaS integrations. Using an open source content management system does not automatically make the entire website open source.
What are the advantages of open source software?
Open source can provide several technical and business benefits:
- the ability to inspect how the software works;
- the right to make independent modifications;
- reduced dependence on a single vendor;
- the ability to hire another provider to continue development;
- reuse of existing solutions;
- collaboration between developers and organizations;
- the potential for defects to be identified by more people;
- independent security reviews;
- greater flexibility when building integrations;
- access to community documentation, extensions, and expertise and expertise.
These benefits depend on the quality and health of the individual project. An open source label does not guarantee good documentation, active maintenance, or access to experienced developers.
What are the limitations and risks of open source?
Open source software still requires careful evaluation. Potential risks include:
- no guaranteed technical support;
- irregular updates or project abandonment;
- compatibility problems between versions and extensions;
- incomplete documentation;
- dependence on a small group of maintainers;
- vulnerabilities in the project or its dependencies;
- compliance obligations arising from multiple licenses;
- implementation, customization, and maintenance costs;
- fragmentation into incompatible versions;
- warranty and liability disclaimers found in many licenses.
No licensing fee does not mean no cost. The total cost of ownership can include hosting, configuration, updates, monitoring, development, security, and specialist support.
Is open source software more secure?
Open source software is not inherently more or less secure than proprietary software. Public code allows independent researchers to identify defects, review security mechanisms, and propose fixes. The same code can also be examined by people looking for vulnerabilities to exploit.
Actual security depends on factors such as:
- the activity and experience of the maintainers;
- the speed at which security fixes are released;
- the vulnerability disclosure process;
- the quality of code reviews and testing;
- the number and quality of dependencies;
- the system’s configuration;
- the regular installation of updates;
- how the software is used in its specific environment.
Public code makes independent auditing possible, but it does not prove that an effective security audit has actually taken place.
How should an open source project be evaluated?
Before adopting a library, plugin, framework, or complete system, review:
- the project’s license;
- license compatibility with the rest of the product;
- the date of the latest stable release;
- the frequency of security updates;
- whether the repository is still actively maintained;
- the number of active maintainers;
- how quickly issues and pull requests are reviewed;
- the availability of installation and upgrade documentation;
- whether the project has a security policy;
- the dependencies installed with it;
- whether a migration path or alternative solution exists.
A large number of stars or downloads can indicate popularity, but it does not replace an evaluation of code quality, security, licensing, and long-term maintainability.
What is a fork?
A fork is an independent copy of a project’s code that is developed in a different direction. It may be created to test an experimental feature, adapt the program to specialized requirements, or build a new product.
Open source licenses allow these independent versions to be created and redistributed. The author of a fork must still satisfy the license conditions and may not have permission to use the original project’s name, logo, or trademarks.
A fork does not necessarily indicate a dispute with the original developers. On source code management platforms, creating a fork is also a standard way to prepare changes that may later be proposed for inclusion in the original project.
How can someone contribute to an open source project?
Contributing is not limited to writing code. People can also help by:
- reporting defects and vulnerabilities;
- improving documentation;
- writing tests;
- translating the interface;
- improving accessibility;
- answering questions from other users;
- designing interfaces and visual assets;
- testing development releases;
- submitting code changes;
- financially supporting maintainers.
Before submitting a contribution, review the project’s CONTRIBUTING file, formatting rules, and testing requirements. Some projects also require a Contributor License Agreement or a Developer Certificate of Origin sign-off.
How should an open source license be selected?
The license should reflect the project’s goals and the ways in which the author wants others to use the code. Relevant questions include:
- Can the code be included in proprietary products?
- Should modified versions remain open source?
- Should copyleft apply to the entire program or only modified files?
- Can the software be offered as a network service without releasing modifications?
- Are express patent rights important?
- Which licenses govern the project’s dependencies?
- Will the project use dual licensing?
- How will development and maintenance be funded?
Using a recognized license is generally safer than writing custom terms. Even a small change to a widely used license can create interpretation and compatibility problems.
A business-critical product or a system combining many components may require a professional license compliance review. General information cannot replace legal advice concerning a specific implementation.
How can a project be released as open source?
Making a repository public is only one part of the process. A basic release can involve:
- confirming that the publisher owns or controls the rights to all released code;
- removing passwords, API keys, personal data, and confidential information;
- selecting an appropriate open source license;
- adding the complete license text in a
LICENSEfile; - describing the project, requirements, and installation process in a
READMEfile; - providing contribution guidelines;
- creating a security vulnerability reporting policy;
- identifying code and assets covered by different licenses;
- establishing a review and release process;
- maintaining dependencies and documentation.
The project should also define rules for using its name and logo. An open source software license primarily covers code and does not necessarily grant trademark rights.
Does open source apply to data, standards, and AI models?
Open source was defined primarily in relation to software. Other areas use separate terms such as open data, open content, open standards, and open hardware.
Public API documentation does not mean that the service’s underlying code is open source. An open standard can be implemented by both open source and proprietary programs. Similarly, publishing data or AI model files does not establish that the software used to create them is open source.
In the AI field, terms such as “open model” and “open weights” are sometimes used for systems released under restrictions that would not be permitted in an approved open source software license. It is therefore important to identify which components are available and which rights the license actually grants.
How can genuine open source software be recognized?
The primary requirement is access to source code under a license that satisfies the Open Source Definition. The repository should provide clear information about the license, copyright holders, and conditions for using the project.
The most important distinctions are:
- publicly visible code without a license is not automatically open source;
- source-available software may permit inspection while restricting use;
- freeware describes price, not access to source code;
- open source software can be used and sold commercially;
- permissive and copyleft licenses establish different redistribution models;
- an open source license does not necessarily cover names, logos, or trademarks;
- every project and its dependencies require an individual license review.
Open source means more than being able to read a program’s code. It is a model for releasing software in which the license gives recipients lasting rights to use, inspect, modify, and redistribute it.