Open by Design: Why I Contribute to the Public Domain

open source

Photo by Markus Winkler on Unsplash

People ask about this more than anything else. More than “how did you build that?” or “what tools do you use?” — the question I get most1 is: why is it all free?

Not free as in trial. Not free as in freemium with a paywall in front of the good features. Not free as in “we’ll sell your data to make up the difference.” Free as in public domain. No licence, no conditions, no attribution required, no restrictions of any kind. Take it, use it, modify it, sell it if you want. I genuinely don’t mind.

That strikes a lot of people as naive, or at least economically irrational. So let me explain.

View source

I learned to build websites by right-clicking.

This was the mid-nineties. The web was young, browsers were terrible, and there was no Stack Overflow, no YouTube tutorials, no bootcamps, no MDN. If you wanted to know how a website worked, you had exactly one option: View Source.

So that’s what I did. I’d find a site that did something interesting — a table layout that actually lined up, a rollover effect, a frame that didn’t look awful — and I’d right-click, view the source, and read it until I understood it. Then I’d copy the bit I needed, paste it into my own HTML file, break it, fix it, and eventually understand it well enough to write my own version from scratch.

That’s how I learned HTML. That’s how I learned CSS. That’s how I learned JavaScript, back when JavaScript meant document.write() and onMouseOver handlers and praying it worked in both Netscape and Internet Explorer.

View Source was the first open source experience I ever had. I just didn’t know the term yet.

Reading other people’s code

The pattern repeated for every language I picked up.

I learned Perl by reading CGI scripts. Downloading from Matt’s Script Archive, pulling apart FormMail and guestbook scripts, tracing the flow from #!/usr/bin/perl to the final print statement. I didn’t buy a Perl book (at least not at first). I didn’t take a course. I read the code, ran the code, broke the code, and eventually wrote my own.

PHP was the same. I learned it by reading open source projects — phpBB, WordPress, osCommerce. I’d install them, use them, then open up the source and follow the logic. How does the login system work? How does it talk to MySQL? How does the template engine render a page? The answers were all there, in the code, if you were willing to read it.

C was the same. Swift was the same. Every language, every framework, every paradigm — the most effective teacher was always someone else’s source code. Not a textbook. Not a tutorial. Not a lecture. Real code, written by real people, solving real problems.

I have learned more from open source software than from every book, course, and classroom combined. It’s not even close.

The debt

There’s no ledger. Nobody is keeping score. The people who wrote those CGI scripts and forum engines and browser games weren’t doing it so that some kid in high-school would learn to program. They were doing it because they wanted to, or because they needed to, or because they thought it was interesting. The fact that I learned from it was a side effect.

But it was a side effect that changed the trajectory of my life. Programming became my career. It became how I pay the mortgage, how I solve problems, how I think. And all of it traces back to someone, somewhere, deciding to share their code.

I don’t owe those people anything in a contractual sense. But I owe them everything in a practical one. The entire foundation of what I do was built on other people’s willingness to let me look at their work.

So when I sit down and write a macOS utility, and it works, and I think “should I charge for this?” — the answer is always the same. No. Because someone, thirty years ago, didn’t charge me for the knowledge that made this possible. Giving it away isn’t generosity. It’s gravity. It’s just the natural direction for things to flow.

What “public domain” actually means

I should be specific, because the licensing landscape is a minefield and vague gestures towards “free” don’t mean much.

Every Jorvik Software app is released under The Unlicense. This is a public domain dedication — not a permissive licence like MIT or BSD, which still have conditions (usually attribution). The Unlicense has no conditions. None.

You can:

That last one makes some people uncomfortable. “What if someone takes your app, puts their name on it, and sells it?” They can. That’s what public domain means. I’ve made peace with it because the alternative — restricting what people can do with the code — contradicts the thing I’m trying to achieve.

If the goal is to make software that’s useful to people, then the most useful thing I can do is remove every obstacle between the code and the person who needs it. Licences are obstacles. Even good ones. Even short ones. If you’ve ever had to check whether an MIT-licensed dependency is compatible with your project’s GPL licence, you know what I mean.

Public domain means you never have to think about it. Just use it.

The economics

Let’s address the obvious question: how does this work financially?

It works because these apps aren’t my livelihood. I have a day job. I write software professionally, and that pays the bills. The Jorvik apps are personal projects — things I build because I want them to exist, or because I find the problem interesting, or because I’m procrastinating on something else.

I’m not leaving money on the table in any meaningful sense. Could I charge £5 for ClipMan? Probably. Would anyone pay? Maybe. Would the revenue cover the time I’d spend on payment processing, support expectations, App Store compliance, refund handling, and the general overhead of running a commercial product? Almost certainly not.

The economics of small utilities are brutal. The market expects them to be cheap or free. The support burden scales with the install base. The App Store takes 30%. And the moment you charge money, the relationship changes — suddenly you have customers instead of users, and customers have expectations that users don’t.

I’d rather have users. Users who find the app useful, use it quietly, and occasionally open a GitHub issue when something breaks. That’s a relationship I enjoy. The commercial version of it is a relationship I’d resent.

What I get that isn’t money

This is the part that sounds suspicious to people who think in terms of business models and value capture. What’s the angle? What’s the real motivation?

There isn’t one. Or rather, the real motivation is exactly what it looks like.

I get to scratch creative itches. I get to solve problems that interest me. I get to ship software without asking anyone’s permission — no product manager, no sprint board, no stakeholder review. I get to build what I want, how I want, when I want.

I get to learn. Every app teaches me something. WindowPin taught me about the accessibility API. ClipMan taught me about persistent storage and SQLite. HyperCaps taught me about CGEvent taps at a level of detail I’d never have explored otherwise. The learning is the return on investment.

I get to contribute to the commons. Somewhere, right now, there might be someone reading the ClipMan source code the way I once read phpBB. Pulling it apart, tracing the logic, learning how a menu bar app works. Maybe they’ll build something better. Maybe they’ll build something completely different, but the pattern they saw in my code will be the thing that makes it click. I’ll never know. That’s fine. I didn’t know the people whose code I learned from, either.

And I get to put things into the world that are unambiguously good. No strings, no tracking, no dark patterns, no rug-pull where the free tier disappears after you’re locked in. Just software that does what it says, costs nothing, and respects the person using it. In an industry that has made a science of extracting value from users, there’s something satisfying about going the other direction.

The principle

I don’t have a grand philosophy about this. I’m not an open source evangelist. I don’t think every company should give their software away, and I don’t think people who charge for their work are doing anything wrong. Charging for software is fine. Building a business around it is fine. The world needs commercial software and the people who build it deserve to be paid.

But I’m in a position where I don’t need to charge, and the thing I’m making is more useful to more people if I don’t. The calculation is simple: keep it free, keep it open, keep it honest.

I grew up in a world where you could learn anything by reading someone else’s code. I’d like the next generation to have the same experience. If some kid somewhere learns Swift by reading my source code — the way I learned Perl by reading someone else’s — then that’s worth more to me than whatever ClipMan would have earned on the App Store.

This isn’t altruism. It’s just paying it forward. Someone left the door open for me. I’m leaving it open for whoever comes next.

Footnotes

  1. I don’t get bombarded with questions about this project. “The question I get most” means I’ve been asked this twice so far.