Why I Took the SaaS Boilerplates Off Gumroad
4 min read
Five boilerplates used to have a buy button on my projects page: SubSaver, FreelanceFlow, KeyMint, MetricMint, and SchemaLens. They still have their own cards there, same descriptions, same screenshots, but the buy button is gone. Each one now points to my email or my GitHub instead of a Gumroad checkout. I made that change to the page itself before writing a word about why, which is backwards from how I usually do this, so here’s the part I skipped.
What actually changed
Nothing about the products changed. SchemaLens still runs the same self-hosted schema doc tool it always was. KeyMint still issues license keys the same way. The only thing that moved is the path from “I want this” to “I paid for this,” and that path now runs through a conversation with me instead of a Gumroad listing.
I didn’t do this because a listing broke or a payment failed. I did it because I’d already written the reasoning for pulling products off Gumroad once, for three n8n templates, and I kept noticing the same shape sitting underneath the boilerplates the whole time I was writing that post.
The same lesson, a third time
The pattern by now has a name I keep coming back to: a product sells when it’s sitting somewhere its buyer is already looking, not just somewhere it’s technically for sale. The Obsidian plugins work because Obsidian’s own plugin directory puts them in front of people already searching for that kind of tool. Etsy works the same way for anything that fits a shopper’s search intent. Gumroad, on its own, is neither of those things. It’s a checkout page. It converts once someone already knows what they want and has a link in hand, but it does nothing to put a product in front of a stranger who’s never heard of it.
The n8n templates were the first place I saw that clearly, because n8n.io has its own template library and I never did the separate work of listing them there properly. The boilerplates are a cleaner version of the same problem, because there isn’t even a library to have skipped. A self-hosted SaaS starter kit doesn’t have a directory, a marketplace, or a community feed sending it traffic. It has whatever traffic I personally go generate for it, forever, for as long as I keep generating it.
That’s a fine model for a product I’m actively promoting. It’s a bad model for five of them sitting quietly on a page, especially once I noticed I hadn’t pushed any of them anywhere in weeks.
Why not just leave the buttons up
Leaving a dead-feeling buy button up costs nothing directly, but it was quietly doing something I didn’t want: making five products look like active listings when none of them were getting the attention an active listing needs. A visitor clicking through from the projects page couldn’t tell the difference between “I’m actively selling this” and “I built this once and haven’t touched the listing since.” Pointing to email and GitHub instead is a more honest signal. It says: this exists, I stand behind it, and buying it is a conversation, not a self-serve transaction I’m not actually running as one.
It also means I’m not pretending five separate checkout flows are being maintained when they’re not. If someone wants SchemaLens or KeyMint, I’d rather talk to them directly than route them through a Gumroad page I haven’t looked at in a month.
What this doesn’t mean
This isn’t a boilerplate-vs-plugin verdict, and it isn’t me writing off the SaaS side of what I build. It’s a narrower claim: a checkout page by itself isn’t a distribution channel, and I’d rather admit that for five products at once than keep dressing up quiet listings as live ones. If I build another self-hosted product like these, the plan is the same one I landed on for automation templates — find where that buyer actually searches first, or be upfront that the buy button is me, not a platform.
For now, the Etsy shop and the Obsidian plugins keep the parts of this that already have a discovery layer doing real work. The boilerplates, SchemaLens included, move to the slower, more honest lane: reach out if you want one, the same way I pulled three n8n templates into that lane a few weeks earlier.