Skip to main content

Open Source - Putting My Money Where My Mouth Is

· 10 min read
Calvin Wilkinson
Creator and Maintainer of Velaptor (and other projects)

I've spent the last ten years building Velaptor, a 2D game framework for .NET, and like every open source maintainer, I've had my moments of asking the community for support; "If you find this useful, consider sponsoring." You know the line. I've written it more times than I can count.

Then a few weeks ago, it hit me. I was looking at the csproj file for Velaptor — really looking at it — and I saw the dependency graph staring back at me. ImageSharp. Silk.net. xUnit. Shouldly. Every single one of these projects is open source. Every single one is maintained by people who, like me, wrestle with issues at midnight and answer questions on weekends. Here I was, asking people to support my work while quietly depending on theirs — without ever having contributed anything back.

So I decided to fix that. This post is about five foundational .NET and gamedev open source projects I'm donating to, why they matter, and why you might want to do the same. Not out of guilt — out of recognition that open source is a team sport, and we're all on the same field. 🤘🏻

The Elephant in the Room

Before I get into the projects, let's talk about why any of this matters. The numbers around open source sustainability are, frankly, grim.

According to a Socket.dev news article, roughly 60% of open source maintainers have either quit or seriously considered quitting. Nearly half are completely unpaid, and many who do get paid pull in less than $1,000 a year. Meanwhile, estimates suggest that 70–90% of all modern software codebases are open source. We're running an entire industry on the backs of volunteers, and in some cases, those volunteers are one bad week away from walking away entirely.

We've seen what happens when that house of cards wobbles. Log4Shell in 2021 and the XZ Utils backdoor in 2024 — multi-year social engineering attacks that came terrifyingly close to compromising SSH on Linux systems worldwide. Both incidents shared the same root cause: critical infrastructure maintained by unpaid, overworked individuals whose work the entire world depended on.

The sponsorship ecosystem has its own distortions. The top 1% of projects collect roughly 95% of all sponsorship money. Frameworks and flashy tools get funded. The "boring" libraries — the ones that parse your config files, handle your image loading, run your tests — tend to fly under the radar. That's the backdrop. Here's what I'm doing about it.

Five Projects, One Hundred Dollars

I'm making one-time $20 donations to five projects. That's $100 total — deliberately small, because the point isn't the amount. The point is that you don't need to be wealthy to participate. This is coffee money. It's what a lot of us spend on a few coffees in a week — whatever that looks like for you — redirected once to the tools that make our work possible. Here's who I'm supporting and why.

Silk.net

This is the one that hits closest to home. Velaptor is built on top of Silk.net. Every window that opens, every keyboard event that fires, every frame of OpenGL rendering — all flows through Silk.net's bindings. They provide C# wrappers for OpenGL, Vulkan, OpenAL, GLFW, SDL, OpenXR, WebGPU, and more. It's part of the .NET Foundation and, at 644 dependents across 29 packages, Silk.net is the bridge between .NET gamedev and modern graphics APIs.

What really stands out to me about Silk.net is that the majority of commits are distributed among 4 different individuals, with the most of those going to Perksey. Four people, maintaining the plumbing that an entire corner of the .NET ecosystem depends on. In the world of graphics rendering libraries, this is no small feat. It's a Herculean effort and important infrastructure, and it's one that deserves support. If that doesn't make the case for direct sponsorship, I don't know what does.

Sponsor Silk.net on GitHub

SixLabors (ImageSharp & ImageSharp.Drawing)

If you've done any cross-platform .NET work involving images, you've almost certainly bumped into SixLabors. They maintain ImageSharp and its drawing extension — fully-managed, cross-platform 2D graphics libraries that replace the aging, Windows-only System.Drawing. They use hardware intrinsics to squeeze out every drop of performance, and the ecosystem has responded: ImageSharp alone has nearly 25,000 dependent projects across 1,700+ NuGet packages.

For Velaptor, ImageSharp is the backbone of texture loading. Every sprite, every background, every piece of pixel art that gets rendered on screen passes through their code first. Without it, I'd be writing my own PNG and JPEG decoders, and honestly, nobody wants that.

SixLabors also runs a dual-licensing model — open source for the community, commercial licensing for enterprise — which is one of the few sustainability approaches that actually seems to work long-term. If you're looking for a model to emulate, this is a good one to study.

Sponsor SixLabors on GitHub

Godot Engine

Godot is a bit of a different beast. It's not a library Velaptor depends on — it's a peer in the gamedev space. A fully open-source, MIT-licensed, cross-platform game engine with over 95,000 GitHub stars and 3,000+ contributors. Since 2024, roughly 4,300 games built with Godot have shipped on Steam. No royalties, no seat licenses — just a download button and a community.

I'm supporting Godot because it represents something bigger than any single framework or engine. It's proof that open source can compete head-to-head with commercial giants like Unity and Unreal — and win. Every dollar that goes to the Godot Development Fund is a vote for a gamedev ecosystem where the tools are accessible to everyone.

Donate to the Godot Development Fund

xUnit

If you write .NET code professionally, you have almost certainly used xUnit, whether you know it or not. Created by the original developers of NUnit (who went on to create xUnit), xUnit is the de facto standard unit testing framework for .NET. It's used by Microsoft's own .NET and ASP.NET teams. It has nearly half a million dependent projects across 1,300+ packages. Over a billion NuGet downloads.

Let that sink in. Half a million projects — from hobby repos to enterprise codebases — depend on this one testing framework. And yet, how many of us have ever clicked the sponsor button? I hadn't. Until now.

Testing isn't glamorous. Nobody writes a blog post gushing about their assertion framework. But xUnit is the bedrock that lets .NET developers ship with confidence, and bedrock deserves maintenance.

Sponsor xUnit on GitHub

Shouldly

Shouldly is the assertion library I reach for in every project. Instead of Assert.Equal(expected, actual), you write result.ShouldBe("expected"). The API reads like English, and when a test fails, the error messages actually tell you what went wrong. That sounds like a small thing until you've spent 20 minutes staring at "Expected: True, Actual: False" with no context about what was different.

With nearly 29,000 dependents and 215 packages, Shouldly has carved out a loyal following. It's also BSD-licensed, which became especially relevant after FluentAssertions — the other major player in the .NET assertion space — changed its licensing terms in early 2024, prompting many developers to explore alternatives. Shouldly was already there, BSD-licensed and stable.

One interesting detail: Shouldly uses Open Collective for funding rather than GitHub Sponsors. Different platform, same mission. It's a good reminder that not every project uses the same funding infrastructure, and that's fine — the important thing is that the option exists at all.

Support Shouldly on Open Collective

The Ripple Effect

Here's something that doesn't get talked about enough: when you pull in a NuGet package, you're not just depending on one project. You're depending on its dependencies, and their dependencies, and their dependencies. A typical .NET project that uses ImageSharp, Silk.net, xUnit, and Shouldly is actually pulling in hundreds of transitive packages.

The dependency chain for Velaptor looks something like this:

Velaptor → Silk.net → GLFW → Operating System → Kernel

At every single link in that chain, there's a person — or a small team — maintaining something they built, often for free. Combined, the five projects I'm donating to have over 540,000 dependent projects. That's more than half a million codebases touching just these five libraries. The blast radius if any one of them were abandoned is staggering.

Twenty dollars each isn't going to solve that problem. Nobody is pretending it will. But $20 from a hundred people? From a thousand? That changes the calculus entirely. The math on open source funding isn't about heroic single donors — it's about enough people chipping in coffee money that maintainers can afford to keep showing up.

What You Can Do (That Doesn't Involve a Wallet)

I know that not everyone is in a position to donate money. That's real, and I'm not going to pretend otherwise. But money isn't the only currency in open source.

Star the repos. That little ⭐ button sounds trivial, but stars are social proof — they help projects show up in search results, get noticed by potential contributors, and build credibility with organizations that might sponsor them later.

File good bug reports. A detailed, reproducible bug report is worth hours of a maintainer's time. Include the version you're on, the platform you're running, the exact steps to reproduce, and what you expected versus what happened.

Answer questions in discussions or Discord servers. If you've solved a problem someone else is hitting, share the solution. Every community question answered by a non-maintainer is a gift of time back to the person who built the thing you're using.

And if you can spare a few dollars — even $5 a month — consider dropping it on one of the projects I've mentioned, or whatever tool you rely on most in your daily work. The projects with the fewest stars and the least glamour are often the ones that need it most.

Where I Fit Into This

I can't write a post about supporting open source without acknowledging the obvious: I'm an open source maintainer too.

Velaptor is my 2D game framework for .NET. It's built on top of the very projects I'm donating to, and it's the thing I pour my evenings and weekends into. If you're curious about it, the docs are at docs.velaptor.io and the repo lives under the KinsonDigital GitHub organization.

If you've read this far and you appreciate what I'm building — or if you just resonate with the idea that we're all in this ecosystem together — you can find me on GitHub Sponsors. Likewise, you can find all of my projects under the KinsonDigital GitHub organization. I'm contributing to the ecosystem we're all part of. If my work resonates with you, that's where you'll find me.