đ§ Knowledge Series #41: Open source explained
What it is, why it matters in the AI age and real world examples from companies like Meta, Dropbox, Airbnb and more.
 đThe Knowledge Series is a unique collection of easy to read guides designed to help you plug the gaps in your tech knowledge so that you feel more confident when chatting to technical colleagues. Clearly explained in plain English. One topic at a time.Â
If youâre a free subscriber and youâd like to upgrade to unlock them you can do so below. Or you can learn more about paid access here.
Hi product people đ,
Meta recently unveiled a series of new open source AI models and at the same time, Mark Zuckerberg published a public letter on the subject entitled âOpen Source AI is the path forwardâ1. As a result, thereâs currently a debate raging about whether the future of AI is open source or not.
But what exactly is open source and how does it work in practice?
Sure, many of us know the basic characteristics and principles of an open source software approach but in this Knowledge Series, weâll go a little deeper to understand its role in product development, real-world examples of how top tier tech companies are approaching open source software (including AI) and some of the potential downsides, too.
Coming up:
What does open source mean? The core principles and concepts explained
How product teams can use open source software
What are the benefits and potential downsides of using an open sourced approach?
Real world examples of open sourced products and technologies from companies including Dropbox, Airbnb, MicrosoftÂ
How open source AI models workÂ
Terminology worth knowing
What does open source mean?
I always find that one of the best ways to understand a concept is to flip it on its head and first understand what the opposite of the concept is.
In this case, the opposite of open-source software would be proprietary software. That is, software that isnât shared with the public, canât be distributed, copied or modified in any way and is legally owned by a single company or small selection of companies.
Examples of proprietary software would include things like Microsoft Windows, Adobe Photoshop or MacOS. But even when you dig deeper into examples of proprietary software, there are still elements of it that will be based on freely available open source software.
Open source software then, is the opposite of proprietary software in many ways:
Itâs open and transparent, not closed
Itâs often developed and owned by a community, not a single corporation Â
It can be modified, copied and distributedÂ
But open source isnât as simple as software thatâs free for everyone to use in whatever way they wish. The use of open source software is often subject to licensing terms which must be adhered to, just like proprietary software.
Weâll come onto some examples of those licensing terms in a second but first, letâs take a close look at some of the key characteristics of open source software.
Key characteristics of open source software
Hereâs a snapshot of some of the key characteristics of open source software, along with some examples of open source projects that are used by modern product development teams.
Open source is typically developed and maintained by a community of contributors with the source code made freely available to developers who want to view, duplicate, modify or contribute to the source code in some way.
Most open source projects are hosted on GitHub which gives them complete transparency; other engineers can view the code, grab a copy for themselves or make suggestions of how to potentially change and improve it. This commitment to transparency is one of the most important characteristics of open-source software since it often means source code can be improved over time with bugs and problems highlighted - and fixed - by the community.
But open source doesnât mean that anyone can do whatever they want with a projectâs source code.
What are the licensing terms for using open source software?
When you first hear the term open source, your immediate assumption is probably that the software is free to use. But thatâs not necessarily true - and different types of open source software will be governed by different types of licensing.
The most common types of licensing used by open source software are: general public licenses, MIT licenses, Apache licenses, BSD licenses, Mozilla Public Licenses.Â
If none of these terms make any sense, hereâs a summary of the key features of each of the licenses along with some real world examples:
Youâll notice that each of these licenses also includes a reference to terms like âCopyleftâ and âPermissiveâ. Ignore these for now and weâll come back to this later. The differences between the key features of each license type is whatâs most helpful to know about for now.
How product teams can use open source
Most of the products we use simply wouldnât exist without open source software.Â
Many of the technologies and programming languages that are used to build products are open source. Javascript, HTML, Python etc are all essentially open sourced - and can be used freely by anyone to build whatever they like. If engineers had to pay a license to use a programming language, the web wouldnât exist.
Many companies have also dedicated teams and initiatives for open source where theyâll commit to building tools that are shared with the wider engineering community to be used by third parties.
Itâs fair to say then, that product teams typically use open source software in one of two ways:
To help themselves build features for the product they work on by using other peopleâs open source software
To help others build products theyâre working on by releasing open source software
Examples of some open source software used in the development process include libraries and frameworks like:
ReactÂ
Ruby on Rails
WordPress
React was developed internally by Meta and this is common among big tech companies; since they have significant resources available to them, theyâll often be in a position to build dedicated teams who can focus on building open source projects that can be used by the wider engineering ecosystem.
How a team can use open-source projects in their own products
If a team wants to use an open-source project in their own product, this typically means downloading a copy of the software onto an engineerâs machine and hosting it as part of the main code repo.
The upsides of open-source are significant (with the fact that much of it is free being the obvious upside), but a major downside of using open source software is that it is then the engineer or engineerâs companyâs responsibility to host it safely and securely.
Without the necessary expertise required to manage open source software, it can be problematic, but most tech companies are fairly well equipped to do it if they decide itâs worth it.
Real world examples of open source products and technologiesÂ
To bring this to life a bit more, letâs take a look at some examples of some open source products and technologies together.
Microsoft
Microsoft, like other big tech companies has a series of dedicated open source projects that product teams can use in their own product development process.
Given Microsoftâs size, there are far too many to go into in detail, but hereâs a few which might be of interest:
Fluent UI componentsÂ
Visual Studio Code: A popular, free, and customizable code editor that runs on Linux, macOS, and Windows.
TypeScript: an open-source programming language that builds on JavaScript by adding static types and type-checking.
.NET: a cross-platform, open-source development framework for building various types of applications.
As we mentioned during the Knowledge Series on development environments, Visual Studio is the most popular code editing software used by professional developers. And itâs free to use under an open source license.
Microsoftâs Fluent design system is also popular. Like Googleâs Material Design system, Fluent is a series of design components that can be used by product designers and developers who want to leverage a series of pre-built designs for popular web components used in UX design.
The Fluent design system was adopted by Microsoft in 2017 and is now available for product teams to use under an open source license. Aside from wanting to help give back to the product design / engineering community, thereâs a strong strategic reason for doing this, too.Â
Microsoft has traditionally struggled with some elements of developer relations and by open sourcing both its code editor and design systems, it is positioning itself for potential future product releases that are dependent on developer support. This is one of the major reasons companies decide to bring projects into the open source community; building trust with the engineering world is a delicate art which, once broken, is very difficult to reclaim.
Dropbox
It might not be classed as big tech, but companies like Dropbox also have dedicated open source projects for engineers to use. Given Dropboxâs strategic focus on privacy and security as a file sharing / collaboration company, it makes sense that some of these are privacy-oriented projects.
They have over 200 projects in total which span various things like:
Password strength tester
A Jpeg file size compressor
Repositories containing scripts that simulate attacks against LLMs to teach engineers about the security risks involved when working with LLMs
Dropbox takes open source seriously. In fact, one of its earliest employees was Guido van Rossum, the creator of the Python programming language.
Airbnb
I worked at a startup a few years back and we were building a booking system for employees to book holidays. We were looking for inspiration on how to design a date picker (itâs a lot trickier than you might imagine for some use cases!) and one of the of the engineers suggested using Airbnbâs open-sourced date picker.