At Canonical we create a lot of open source, and we contribute features and fixes to upstream projects. We also support several large open source foundations such as the Eclipse Foundation, Cloud Native Computing Foundation (CNCF), and the Gnome Foundation.
In April, we added another way of giving back: using thanks.dev, we’re donating money to the smaller open source projects we depend on. Thanks.dev analyses your GitHub dependencies and splits your donation between them.
We’ve committed to donating US$120,000 to open source developers over the next 12 months, transferred at $10,000 per month. The distribution of funds is determined by thanks.dev’s algorithm, which splits the money based on which dependencies are used by more projects. As their website explains:
Our systems will (1) walk your repositories; (2) grab the manifest files; (3) collate your dependency tree up to 3 levels deep; and (4) trickle your donation breadth first across said tree.
Here are the top recipients, showing the first 10 out of 358 (the full list lives at thanks.dev/r/canonical):

We donated the first batch of funds in April, and we’ve already heard some great feedback from developers who received a pleasant surprise, for example:
Thanks to Canonical for sponsoring me through @thanks_dev! They’re the third company to sponsor me there
:)
I personally love how we’re giving to over 350 GitHub users and orgs. Each receives a relatively small amount, but it adds up over time. While very few open source developers do it for the money, the feeling of being recognised, knowing that someone cared enough to show it, has real meaning for an open source creator.
By default, thanks.dev splits the funds automatically according to how often a dependency is used. However, one can boost or reduce the weight at the programming language level and at the GitHub org level. For now, we’ve tweaked the language knobs to try to fairly represent our usage, and we’ll no doubt make other changes over time.
To take an example, one of the individuals that’s fairly high up on that list is gh/nedbat: he’s the author of coverage.py, which we use extensively.
Or take someone further down the list, gh/adamchainz: he’s the author of projects like time-machine, which is used by the Ubuntu website itself.
One of the things I love most about working for Canonical is being able to tell people, “the vast majority of the code we write is fully open source.” We work in the open on GitHub and use our own Launchpad project hosting system.
Speaking of Launchpad, thanks.dev doesn’t support Launchpad right now, but they’ve kindly agreed to add support for this Canonical system. They’ve been nothing but helpful, and we wish them well as they provide this excellent service to support open source developers.
It’s not just Canonical who supports open source projects in this way. We’ve joined the ranks of several other companies (and many individuals) that give back using thanks.dev:

Thanks.dev receives a small commission, of course, for their hard work (5%): they host the analysis and reports, contact potential donors regularly, and distribute the money (they often have to request that developers set up a way to receive funds).
A very common question is “how can I get paid to write open source?” Well, one way is to come work for Canonical! But if that’s not for you right now, go create an open source project, get people to start using it, and you may just see some donations coming your way.