Dodger2054

Preaching self-hosting, down to the sign-up form

I had an idea for an app, and before sinking weeks into it, I wanted to know whether anyone actually wanted it. The method is well known: a landing page, a form to collect a few email addresses, and you watch whether the world answers. Nothing original. Except that, wiring up this little setup, I ran into a question I hadn’t seen coming — and it said something larger than my idea.

The reflex we all have

To collect emails, the default tool is a hosted form: Google Forms, Tally, some ready-made service. Two minutes, zero maintenance, it works. I was about to do it, like everyone does.

The medium contradicted the message

Then I reread myself. My page argued for exactly the opposite: no cloud, no middleman, your data stays with you. And I was about to collect the addresses of people who’d come out of conviction… through a form sitting on the servers of a Silicon Valley company that would see every email before I did. The substance said “no third party”; the plumbing said “except this one, it’s convenient.” The medium contradicted the message. It wouldn’t have fooled anyone — least of all the audience I was aiming for.

So I self-hosted the form too

The form that takes your email is now a hundred and fifty lines of Python with no dependencies, running on my own machine, behind my own reverse proxy, writing to a plain file on my disk. No third-party service sees anything. The page that preaches self-hosting is served from my home, and so is the form that extends it — down to the last byte.

The safeguard: more effort, and the idea didn’t take

I won’t pretend it was free. It took more work than a link pasted in two minutes: writing the service, securing it a little, wiring it in. And the full truth is that the idea itself didn’t take off — the community I showed it to told me, politely, that it wasn’t for them. The form collected not a single address.

What remains when the idea falls

And yet. The emails that never came are also emails no third party ever scooped up along the way. The consistency held, even when the idea didn’t. That’s what I take from it: sovereignty isn’t a reward you grant yourself when a project succeeds — it’s a default stance, and it’s decided mostly on the small, unglamorous plumbing. The sign-up form, the tracker you don’t add, the metric you decline to collect. That’s exactly where it leaks — on the “just for this one little thing, it’s more convenient” — one handy exception at a time.

A direction, not a purity

I’ll say it again, as I have elsewhere: I’m no zealot. I still use tools I haven’t replaced, and today’s form may prove imperfect tomorrow. But every time I can hold the line without lying to myself, I hold it — including for the tiny bricks no one looks at. This form sits on the same little machine that hums away serving this blog. It collected nothing. And it’s exactly what I wanted it to be: mine.