The Microsoft FOSS Fund provides a direct way for Microsoft engineers to participate in the nomination and selection process to help communities and projects they are passionate about.
A project of the Microsoft Open Source Programs Office, the FOSS Fund grants sponsorships to open source projects as selected by Microsoft employees. To help drive an open contribution culture across Microsoft, employees are eligible to select projects for the fund when they participate in projects that are not governed by Microsoft. A data-driven approach has also been used for bulk sponsorship experiments.
Microsoft is proud to be participating in open source communities more than ever before, whether contributing to projects, releasing new open source projects, or using open source to make our products and services work better for the world and our customers.
While Microsoft and its many teams sponsor everything from open source conferences to contributing to foundations like the Open Source Initiative (OSI) and industry groups such as the Linux Foundation, we hope that the FOSS Fund can help to connect to a new set of projects that we may not have thought to fund in the past, providing real value to communities and projects that help power Microsoft products, services, and our customers.
Every quarter a new fund and selection process will distribute up to $12,500 USD across one or more open source project(s). Any employee or intern at Microsoft can nominate a project, with a few requirements:
- The open source project must be used by Microsoft.
- The project must have an OSI-approved open source license
- Needs to have a way to receive funds that our procurement and legal teams are happy with (GitHub Sponsors is preferred!)
- the project cannot be owned by a Microsoft employee
- great nominations should prioritize diversity, equity and inclusion
Each funding period has a set eligibility date range for voting. During that time:
- Any Microsoft employee who contributes to an open source project on GitHub (creating a pull request to a project, submitting and discussing issues, performing a pull request review) will automatically become eligible to participate in the selection process.
- Contributions not captured in the above process may be linked via this self-attestation form. This is inclusive of both technical and non-technical contributions.
- Haven't contributed, but want to qualify to vote? Consider these 8 ways to contribute to OSS today!
After a selection is made, the Microsoft open source office works to fund the project, allowing the recipient to use the funds to best suit their project's needs.
The nomination process is open to all Microsoft employees and interns, and a curation group - the "Open Source Champs", helps to get each fund's nominees together. Some funding rounds may have a particular theme, and every funding round will have from 5-20 nominated projects or so.
If you are an open source maintainer, the best way to make sure you're eligible is to build a great community, an amazing project, use an OSI-approved license, be able to receive funds (sometimes this may require working with a foundation).
- Learn about the fund and select a project in the current round: aka.ms/fossfund
- Review nomination criteria and other information: aka.ms/fossfundform
- Employee resources about open source at Microsoft: aka.ms/opensource
Projects that are selected for the FOSS Fund receive up to $12,500 USD from Microsoft as selected by all the open source contributors from Microsoft who participate in selecting the project for that round. Nominations are accepted every day, with projects selected quarterly!
-
Nominations are now open for the next FOSS Fund.
-
FOSS Fund 31 (September, 2024), many of those sponsored, maintain multiple open source projects.
- David Tolnay: Maintainer for serde: a serialization framework for Rust.
- Eemeli Aro: Maintainer of YAML: parser and stringifier for JavaScript.
- Andrew Gallant: Maintainer of aho-corasick and memchr among many other Rust projects.
- Blake Embrey: Maintainer of change-case: convert strings between camelCase, PascalCase, Capital Case, snake_case and more.
- Lars Kappert: Maintainer of Knip: find unused files, dependencies and exports in JS and TS projects.
- Wei He: Maintianer of pull: keep your forks up-to-date via automated PRs.
- TAHRI Ahmed R.: Maintainer of charset-normalizer: universal charset detector.
-
FOSS Fund #30 (June, 2024)
Click here to hide/show list of 175 sponsored open source projects
- AndreyAkinshin (Andrey Akinshin) : [BenchmarkDotNet]
- Brooooooklyn (LongYinan) : [swc-node]
- Caligatio (Brian Turek) : [jsSHA]
- CraZySacX (Jason Ozias) : [vergen]
- GuillaumeGomez (Guillaume Gomez) : [sysinfo]
- JamieMason (Jamie Mason) : [syncpack]
- JeremySkinner (Jeremy Skinner) : [FluentValidation]
- JoshClose (Josh Close) : [CsvHelper]
- JoshuaWise (Joshua Wise) : [better-sqlite3]
- Kilian (Kilian Valkhof) : [electron-to-chromium]
- KingSora (Rene Haas) : [OverlayScrollbars]
- LouisBrunner (Louis Brunner) : [dnd-multi-backend]
- NaturalIntelligence (Natural Intelligence) : [fast-xml-parser]
- PCSX2 (PCSX2 Team) : [pcsx2]
- RestSharp (RestSharp) : [RestSharp]
- RicoSuter (Rico Suter) : [Nswag]
- Siilwyn (Selwyn) : [css-declaration-sorter]
- SupremeTechnopriest (Randy Lebeau) : [react-idle-timer]
- Swatinem (Arpad Borsos) : [rollup-plugin-dts]
- VerifyTests (Verify) : [Verify]
- ahmadnassri (Ahmad Nassri) : [node-glob-promise]
- ai (Andrey Sitnik) : [nanoid, size-limit, autoprefixer, postcss, postcss-safe-parser, postcss-scss]
- aloneguid (Ivan G) : [parquet-dotnet]
- andrew (Andrew Nesbitt) : [packages]
- andris9 (Andris Reinman) : [nodemailer]
- apocas (Pedro Dias) : [dockerode]
- ardalis (Steve Smith) : [GuardClauses]
- ardatan (Arda TANRIKULU) : [whatwg-node]
- arvidn (Arvid Norberg) : [libtorrent]
- asottile (Anthony Sottile) : [pre-commit]
- avoidwork (Jason Mulligan) : [tiny-lru, filesize.js]
- babel (Babel) : [babel-polyfills]
- bokuweb (bokuweb) : [react-resizable-box]
- bradymholt (Brady Holt) : [cronstrue]
- brettz (None) : [eslint-plugin-jsdoc]
- brianc (Brian C) : [node-postgres]
- broofa (Robert Kieffer) : [mime]
- btd (Denis Bardadym) : [rollup-plugin-visualizer]
- capricorn86 (David Ortner) : [happy-dom]
- cenk1cenk2 (Cenk Kılıç) : [listr2]
- clauderic (Claudéric Demers) : [dnd-kit]
- clux (Eirik A) : [kube]
- cristianrgreco (Cristian Greco) : [testcontainers-node]
- cure53 (Cure53) : [DOMPurify]
- cyberalien (Vjacheslav Trushkin) : [iconify]
- dadhi (Maksim Volkau) : [FastExpressionCompiler]
- danielpalme (Daniel Palme) : [ReportGenerator]
- davidhalter (Dave Halter) : [ReportGenerator]
- dcastil (Dany Castillo) : [tailwind-merge]
- django (Django) : [django]
- djc (Dirkjan Ochtman) : [askama]
- dlemstra (Dirk Lemstra) : [Magick.NET]
- dmonad ( Kevin Jahns) : [lib0]
- dmtrKovalenko (Dmitriy Kovalenko) : [cypress-real-events, date-io]
- ds300 (David Sheldrick) : [patch-package]
- dtolnay (David Tolnay) : [itoa, cxx, prettyplease, proc-macro2, quote, ryu, semver, serde-yaml, syn, trybuild]
- dubzzz (Nicolas DUBIEN) : [fast-check]
- dvarrazzo (Daniele Varrazzo) : [py-setproctitle]
- dwmkerr (Dave Kerr) : [wait-port]
- encode (Encode) : [starlette, uvicorn]
- enisdenjo (Denis Badurina) : [graphql-ws]
- eps1lon (Sebastian Silbermann) : [dom-accessibility-api]
- erikras (Erik Rasmussen) : [final-form]
- facelessuser (Isaac Muse) : [pymdown-extensions, soupsieve]
- faisalman (Faisal Salman) : [ua-parser-js]
- fkhadra (Fadi Khadra) : [react-toastify]
- fluentassertions (FluentAssertions) : [fluentassertions]
- fxn (Xavier Noria) : [zeitwerk]
- gajus (Gajus Kuizinas) : [roarr]
- goldfire (James Simpson) : [howler.js]
- gr2m (Gregor Martynus) : [universal-user-agent]
- gregberge (Greg Bergé) : [react-merge-refs]
- gregsdennis (Greg Dennis) : [json-everything]
- hardkoded (hardkoded) : [puppeteer-sharp]
- harttle (Jun Yang) : [liquidjs]
- horejsek (Michal Hořejšek) : [python-fastjsonschema, reqwest, warp]
- isaacs (isaacs) : [isexe, tapjs, minimatch, node-glob, rimraf, sax-js]
- jaraco (Jason R. Coombs) : [keyring]
- jbogard (Jimmy Bogard) : [AutoMapper]
- jdavid (J. David Ibáñez) : [pygit2]
- jhpratt (Jacob Pratt) : [language-tools]
- john-kurkowski (John Kurkowski) : [tldextract]
- johnsoncodehk (Johnson Chu) : [language-tools]
- josdejong (Jos de Jong) : [jsoneditor]
- josefpihrt (Josef Pihrt) : [roslynator]
- jpadilla (José Padilla) : [pyjwt]
- kamilmysliwiec (Kamil Mysliwiec) : [nest]
- karellm (Karel Ledru) : [i18next-parser]
- kazupon (kazuya kawaguchi) : [vue-i18n]
- kislyuk (Andrey Kislyuk) : [argcomplete]
- knsv (Knut Sveidqvist) : [mermaid]
- lavrton (Anton Lavrenov) : [konva]
- leeoniya (Leon Sorokin) : [uPlot]
- leongersen (Léon Gersen) : [noUiSlider]
- lepture (Hsiaoming Yang) : [mistune]
- libjpeg-turbo (libjpeg-turbo) : [libjpeg-turbo]
- lipanski (Florin Lipan) : [mockito]
- ljharb (Jordan Harband) : [resolve, define-properties, es-abstract, internal-slot]
- louthy (Paul Louth) : [language-ext]
- lukeed (Luke Edwards) : [clsx, polka]
- markdown-it (Markdown it!) : [markdown-it]
- martincostello (Martin Costello) : [Polly]
- matplotlib (Matplotlib Developers) : [matplotlib]
- maxbachmann (Max Bachmann) : [RapidFuzz]
- mdevils (Marat Dulin) : [html-entities]
- mesqueeb (Luca Ban) : [copy-anything, is-what, merge-anything]
- miguelgrinberg (Miguel Grinberg) : [python-engineio, flask-socketio]
- mitsuhiko (Armin Ronacher) : [insta]
- mswjs (Mock Service Worker) : [interceptors]
- ned14 (Niall Douglas) : [llfio]
- nedbat (Ned Batchelder) : [coveragepy]
- nexB (nexB) : [scancode-toolkit]
- nlohmann (Niels Lohmann) : [json]
- nwtime (Network Time Foundation) : [ntp-project]
- obi1kenobi (Predrag Gruevski) : [cargo-semver-checks]
- oblador (Joel Arvidsson) : [react-native-vector-icons]
- ohler55 (Peter Ohler) : [oj]
- palfrey (Tom Parker-Shemilt) : [serial_test]
- panva (Filip Skokan) : [node-openid-client]
- patriksvensson (Patrik Svensson) : [spectre.console]
- pest-parser (pest) : [pest]
- petyosi (Petyo Ivanov) : [react-virtuoso]
- phatboyg (Chris Patterson) : [MassTransit]
- piotr-oles (Piotr Oleś) : [fork-ts-checker-webpack-plugin]
- plotly (Plotly) : [plotly.js]
- prc5 (Maciej Pyrc) : [react-zoom-pan-pinch]
- privatenumber (Hiroki Osame) : [esbuild-loader]
- pubkey (Daniel Meyer) : [broadcast-channel]
- python (Python) : [typeshed]
- python-websockets (None) : [websockets]
- ramosbugs (David Ramos) : [openidconnect-rs]
- remarkablemark (Mark) : [html-dom-parser, html-react-parser, style-to-object]
- ritchie46 (Ritchie Vink) : [polars]
- rkyv (rkyv) : [rkyv]
- robinrodricks (Robin Rodricks) : [FluentFTP]
- robjtede (Rob Ede) : [actix-web]
- ruimarinho (Rui Marinho) : [google-libphonenumber]
- samuelcolvin (Samuel Colvin) : [pydantic-core, pydantic, watchfiles]
- sanex3339 (Timofey Kachalov) : [javascript-obfuscator]
- sdispater (Sébastien Eustace) : [pendulum]
- seanmonstar (Sean McArthur) : [hyper]
- seperman (Sep Dehpour) : [deepdiff]
- sfackler (Steven Fackler) : [rust-openssl]
- shimat (shimat) : [opencvsharp]
- sidharthv96 (Sidharth Vinod) : [mermaid]
- sindresorhus (Sindre Sorhus) : [aggregate-error, boxen, bundle-name, callsites, camelcase, camelcase-keys, cli-spinners, default-browser, default-browser-id, del, delay, detect-newline, dot-prop, file-type, find-cache-dir, get-port, globby, internal-ip, into-stream, is, is-wsl, ky, macos-release, make-dir, meow, node-defaults, ora, package-json, parent-module, parse-json, p-event, p-retry, pretty-bytes, p-timeout, quick-lru, read-pkg, read-pkg-up, restore-cursor, serialize-error, string-length, strip-json-comments, tempy, titleize, type-fest, untildify]
- squidfunk (Martin Donath) : [mkdocs-material]
- starkat99 (Kathryn Long) : [half-rs]
- streamich (Va Da) : [memfs]
- streetsidesoftware (Street Side Software) : [cspell]
- sunng87 (Ning Sun) : [handlebars-rust]
- suren-atoyan (Suren Atoyan) : [monaco-react]
- swc-project (swc) : [swc]
- taiki-e (Taiki Endo) : [pin-project]
- tapjs (TAP in JavaScript) : [tapjs]
- tauri-apps (Tauri) : [tauri]
- tiangolo (Sebastián Ramírez) : [time]
- timocov (Evgeniy Timokhov) : [dts-bundle-generator]
- tokio-rs (Tokio) : [tokio]
- tscanlin (Tim Scanlin) : [tocbot]
- typicode (None) : [json-server]
- unifiedjs (unified) : [micromark, unified, vfile-reporter]
- urql-graphql (urql GraphQL) : [wonka]
- vogloblinsky (Vincent Ogloblinsky) : [compodoc]
- voxpupuli (Vox Pupuli) : [json-schema]
- weppos (Simone Carletti) : [publicsuffix-ruby]
- wojtekmaj (Wojciech Maj) : [date-utils, get-user-locale, make-cancellable-promise, make-event-props, merge-refs, react-fit, react-pdf, react-time-picker, update-input-width]
- wooorm (Titus) : [property-information]
- xoofx (Alexandre Mutel) : [markdig]
- xyflow (xyflow) : [react-flow]
- yyx990803 (Evan You) : [core]
- zesterer (Joshua Barretto) : [flume]
- ziglang (Zig Programming Language) : [zig]
- zlib-ng (zlib-ng) : [zlib-ng]
- zoontek (Mathieu Acthernoene) : [react-native-localize, react-native-permissions]
- FOSS Fund #29 (March, 2024)
- NonVisual Desktop Access (NVDA) : NVDA, the free and open source Screen Reader for Microsoft Windows. A screen reader is a program that renders on-screen text and controls as synthesized speech and/or Braille output.
- The GNU Compiler Collection : The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D, as well as libraries for these languages (libstdc++,...). GCC was originally written as the compiler for the GNU operating system.
- Urllib3 : urllib3 is a user-friendly HTTP client library for Python
- clap : A full featured, fast Command Line Argument Parser for Rust
- MSW : Seamless REST/GraphQL API mocking library for browser and Node.js.
- FOSS Fund #28 (December, 2023) :
- .NET nanoFramework: .NET nanoFramework makes it easy for C# developers to write embedded applications on microcontrollers units (MCU) with the tools, debugging and features they are used to. This is a free and Open-Source platform for constrained embedded devices. As a developer, you can use your powerful and familiar tools like Microsoft Visual Studio IDE and your .NET C# skills to write code on a microcontroller
- BenchmarkDotNet: Powerful .NET library for benchmarking
- JsonSchema.NET: JsonSchema.NET is one of the packages used to ensure our developer workflows are successful
- markdig: Markdig is used by several products the .NET ecosystem is built on, NuGet.org, Visual Studio, Microsoft Docs
- OpenIddict: Flexible and versatile OAuth 2.0/OpenID Connect stack for .NET
- FOSS Fund #27 (September, 2023) :
- LLVM: The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
- Mastodon: self-hosted, globally interconnected microblogging community
- Debian: The Debian project is an important basis for the many ways we use Linux
- SQLitePCLRaw: SQLitePCLRaw is a Portable Class Library (PCL) for low-level (raw) access to SQLite.
- MQTT.js: MQTT.js is a client library for the MQTT protocol, written in JavaScript for node.js and the browser.
- FOSS Fund #26 (June 2023) : Eric Zimmerman's Forensic Tools Eric Zimmerman teaches DFIR (digital forensics and incident response) and has become a leading expert in extracting forensic artifacts from systems.We are deeply appreciative of Zimmerman's open source software.
- FOSS Fund #25 (October 2022) : 40 projects have been selected for a one-time $500.00 sponsorship in celebration of FOSS Fund #25. [Blog Post]
- FOSS Fund #24 (September 2022) : OpenSSL OpenSSL is one of the most important and critical software used in the IT - it provides a set of cryptographic algorithms used by many software and devices to ensure security in communications, e-commerce, remote work and more.
- FOSS Fund #23 (August 2022) : mermaid-js Mermaid is a JavaScript based diagramming and charting tool that uses Markdown-inspired text definitions and a renderer to create and modify complex diagrams. The main purpose of Mermaid is to help documentation catch up with development.
- FOSS Fund #22 (July 2022) : webpack Many Microsoft products depend on Webpack as part of their build process. It's critical to many modern software projects.
- FOSS Fund #21 (June 2022) : Godot Engine: Godot is a FLOSS game engine featured on the .NET site that supports programming in C# using the Mono Runtime, and the project is working on a migration to .NET 6. Gamedev was my motivation to learn to code, as it is for others now, and using Godot with C# 10 is a great way to learn a language that's already broadly relevant.
- FOSS Fund #20 (May 2022): GNOME: From low-level libs over the window manager to end user applications the GNOME project is an essential part of many graphical Linux devices. It also powers Ubuntu which is the first Linux work environment supported at Microsoft.
- FOSS Fund #19 (April 2022):
- Fund #18 (February 2022) - MSYS2: MSYS2 is a collection of tools and libraries providing you with an easy-to-use environment for building, installing and running native Windows software.
- Fund #17 (January 2022) - curl: curl is used in command lines or scripts to transfer data. curl is used daily by virtually every Internet-using human on the globe.
- Fund #16 (December 2021) Open Source for Good - OpenStreetMap: OpenStreetMap is built by a community of mappers that contribute and maintain data about roads, trails, cafés, railway stations, and much more, all over the world.
- Fund #15 (November 2021) - Babel: Babel is a toolchain that is mainly used to convert ECMAScript 2015+ code into a backwards compatible version of JavaScript in current and older browsers or environments.
- Fund #14 (October 2021): Reproducible Builds: Reproducible builds are a set of software development practices that create an independently-verifiable path from source to binary code.
- Fund #13 (September 2021): OptiKey: OptiKey is a free on-screen-keyboard for eye-tracking devices. It enables people with motor disabilities to use a computer, even if they cannot afford one of the expensive commercial alternatives.
- Fund #12 (August 2021): QEMU: QEMU is a generic and open source machine emulator and virtualizer. Virtualization is a fundamental piece for effective OS development and beyond, be it emulating a bare-metal K8s environment or testing software on various OSes. QEMU also enables users to run an operating system other than their current one.
- Fund #11 (June 2021)
-
- Coloroma:This is a critical project in the Python ecosystem for enabling "normal" color output to work on Windows. It is used by a wide variety of projects, including the Azure CLI and pip.
-
- Grain:Grain is a new language targeting WebAssembly. As WebAssembly is taking off cloud-side, we see this language as a great "scripting-like" language for building Wasm-native applications._
- June 2021 one-time, 10K Sponsorships:
- Ajv:The fastest JSON validator for Node.js and browser.
- Ooui: Ooui (pronounced weee!) is a small cross-platform UI library for .NET that uses web technologies.
- .NET nanoFramework: .NET nanoFramework goal is to be a platform that enables the writing of managed code applications for constrained embedded devices.
- Syn: Parser for Rust source code.
- Hikaya: Suporting nonprofits to tell their stories through data.
- Ngrx : Reactive Extensions for Angular.
- Chayn: Chayn helps women experiencing abuse find the right information and support they need to take control of their lives.
- Fund #10 (May 2021): dbatools: dbatools is PowerShell module that you may think of like a command-line SQL Server Management Studio. The project initially started out as just Start-SqlMigration.ps1, but has now grown into a collection of over 500 commands that help automate SQL Server tasks and encourage best practices..
- Fund #9 (April 2021): SharpLab: SharpLab is a .NET code playground that shows intermediate steps and results of code compilation.
- Fund #8 (March 2021): ILSpy: ILSpy ships in Visual Studio and is powering the important Decompilation feature, used by many VS users.
- Fund #7 (February 2021): home-assistant: Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts.
- Fund #6 (January 2021): matplotlib: Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.
- Fund #5 (December 2020): NonVisual Desktop: NVDA is a screen reader for the blind, that is recognized by the community as the leading screen reader to interact with the Web in Windows.
- Fund #4 (November 2020): Network Time Protocol: (NTP) is a networking protocol for clock synchronization between computer systems over packet-switched, variable-latency data networks.
- Fund #3: SixLabors/ImageSharp: A modern, cross-platform, 2D Graphics library for .NET
- Fund #2: rust-analyzer/rust-analyzer: An experimental Rust compiler front-end for IDEs
- Fund #1: eslint/eslint: Find and fix problems in your JavaScript code.
Microsoft is proud to be participating in open source communities more than ever before, whether contributing to projects, releasing new open source projects, or using open source to make our products and services work better for the world and our customers.
While Microsoft and its many teams sponsor everything from open source conferences to contributing to foundations like the Open Source Initiative (OSI) and industry groups such as the Linux Foundation, we hope that the FOSS Fund can help to connect to a new set of projects that we may not have thought to fund in the past, providing real value to communities and projects that help power Microsoft products, services, and our customers.
Every quarter a new fund and selection process will provide up to 10,000 to an open source project. Any employee or intern at Microsoft can nominate a project, with a few requirements:
- The open source project must be used by Microsoft.
- Project is actively prioritizing diversity, equity and inclusion.
- The project must have an OSI-approved open source license
- Needs to have a way to receive funds that our procurement and legal teams are happy with (GitHub Sponsors is great!)
- the project cannot be owned by a Microsoft employee
Each funding period has a set eligibility date range for voting. During that time:
- Any Microsoft employee who contributes to an open source project on GitHub (creating a pull request to a project, submitting and discussing issues, performing a pull request review) will automatically become eligible to participate in the selection process.
- Contributions not captured in the above process may be linked via this self-attestation form. This is inclusive of both technical and non-technical contributions.
- Haven't contributed, but want to qualify to vote? Consider these 8 ways to contribute to OSS today!
After a selection is made, the Microsoft open source office works to fund the project, allowing the recipient to use the funds to best suit their project's needs.
The nomination process is open to all Microsoft employees and interns, and a curation group - the "Open Source Champs", helps to get each fund's nominees together. Some funding rounds may have a particular theme, and every funding round will have from 5-20 nominated projects or so.
If you are an open source maintainer, the best way to make sure you're eligible is to build a great community, an amazing project, use an OSI-approved license, be able to receive funds (sometimes this may require working with a foundation).
- Learn about the fund and select a project in the current round: aka.ms/fossfund
- Review nomination criteria and other information: aka.ms/fossfundform
- Employee resources about open source at Microsoft: aka.ms/opensource
We're proud to have adopted the FOSS Fund model as created by the Indeed open source engineering group, and have learned a lot from others. Check out FOSSFunders for more on how companies are working together to fund open source.
If you're interested in the experience that Indeed had, which inspired us to join in the effort, the post The FOSS Contributor Fund: Six Months In is a very good read. We know of other companies running similar projects, such as Salesforce, and really think this is another great funding avenue to help open communities collectively.