NO. 59 · AUG 23, 2026 · 5 MIN

The Free Template Outearned the Paid One

In eighteen months my paid Astro template sold once, for $29. The free MIT one collected $110 in unsolicited payments through a button with no sentence next to it. The shape of that money was more useful than the size.

In March 2025 I published two Astro templates within three weeks of each other.

One was free and MIT licensed. It has 101 stars, 44 forks, and has collected $110 in unsolicited payments.

The other had a pricing page, a Polar checkout, a Pro tier, and a contact address for enterprise enquiries. It has sold one copy, for $29, and I have not touched the repository in seventeen months.

$139 total. It is a small number and I am not going to pretend otherwise. But I only recently looked at how it breaks down, and the shape turned out to be more useful than the size.

The paid one had everything a product is supposed to have

That is the part worth sitting with. It was not missing a checkout. It was not missing a demo, or a feature list, or a landing page. It had all of it, built over a weekend, and it converted once.

I know exactly what I did after shipping it: I listed it, and I waited.

That was the entire distribution strategy. Not a bad version of a strategy — the absence of one. I had somehow decided that the work ended at the pricing page, and that traffic was something that happened to a repository rather than something you go and get.

Seventeen months of silence is a very slow way to learn that.

The one post I wrote to sell it was not in my voice

There is still a post on this blog from March 2025 that opens with “Hey there, awesome people!” and promises features that will make you go WOW. It has nine emoji in the feature list. It ends with a P.S.

I wrote that, and I do not write like that. I put on a costume I thought a template buyer wanted to see, and the costume did not fit well enough to sell anything. The Polar link in it has been dead for over a year.

I am leaving the post up. It is evidence.

$110 arrived through a button nobody labelled

Here is the part that changed how I think about this.

Every one of those free-template payments came through the small grey Sponsor button at the top of a GitHub repository. There was a FUNDING.yml in the repo, so the button rendered. There was not one sentence anywhere in the README explaining why anyone should press it, what it was for, or what I would do in return.

Three payments, no pitch:

  • $75 — a UK company
  • $25 — a developer who emailed me a build error
  • $10 — an individual

I had assumed for a year that the number was small because people do not pay for free things. The actual explanation is duller and much more fixable: I never asked, and they paid anyway.

The $25 was not for the template

Someone cloned the repo, could not get it to build, and emailed me. I read the error, told him what to change, and he shipped his site. Then he sent $25.

The template was free before that exchange and it was free afterwards. What he paid for was twenty minutes that moved him from stuck to deployed.

The open issues on that repository are all the same shape. npm i doesn't work for latest code. Build error (i am trying to learn). Missing file or inaccurate Readme?. Not one person has ever opened an issue asking for more page sections.

The artefact was never the scarce thing. The unblocking was.

The $75 was a licence fee with nowhere to go

A UK company shipped a client project on MIT-licensed code. Legally they could have invoiced their client, closed the laptop, and never learned my name. That is what MIT means and I would have had no complaint.

They found an unlabelled grey button and sent $75 anyway.

I no longer read that as a donation. I read it as a commercial licence fee looking for a checkout that did not exist. And when I went through the forks properly last week, I found five of them are agencies and studios with live client sites running on the template — one of them pushed a commit nine days ago.

In eighteen months I have never once asked any of them what they need.

What I changed this week

Every template repository now has a COMMERCIAL.md, linked from the README. It says, in order:

  1. The template is MIT and always will be. Use it for client work, invoice for it, never speak to me. That is genuinely fine.
  2. If you shipped a paid project on it, there is a $75 commercial sponsorship. It is priced at exactly what that UK company sent, unprompted, before the page existed.
  3. If you are stuck between git clone and a live site, there is a $199 ship-assist. Three business days. If I cannot unblock you, you do not pay.
  4. If you are a studio shipping several client sites on these templates, there is a $499/year plan.

Nothing moved behind a paywall. There is no crippled free tier, and there will not be one. The templates that were free this morning are free tonight and will be free next year. The only thing that changed is that the button now has a sentence next to it.

What would prove me wrong

For eighteen months this averaged $6.10 a month with no copy at all. So the test is not complicated.

Over the next thirty days:

  • More than $6 — the guess holds, and the constraint really was the missing payment path.
  • Zero, and no email — “commercial users want to pay” was me over-fitting to a single generous company, and I should stop building on it.
  • Email arrives but nobody buys — the demand is real and my pricing or my wording is wrong. That is a rewrite, not a retreat.

The third outcome is the one I actually expect, and it is the reason I am watching the inbox rather than the balance. A payment tells you almost nothing. A stranger writing to explain what he is stuck on tells you what to build.

I got this wrong for a year and a half by treating a template as a product. It is not a product. It is the reason someone has your email address on the worst day of their build.

Think this is wrong?

Good. That is usually the better email.