I put a public API on the internet this week — from a server in my house.
For months, yt-transcript-api was a script I ran for myself: paste a YouTube URL, get the captions, get a summary, move on. It saved me hours. Then I realized the interesting question was not whether I could build it, but whether I could trust it enough to let strangers use it.
So this week ytapi.app went live. FastAPI behind Traefik on a Proxmox box I already run. The transcript endpoint pulls YouTube captions directly — no LLM in that path. The analyze endpoint runs sentiment, keywords, and a summary through my own Ollama model. Stripe handles billing. The free tier is 50 requests a day, no card, because I would rather people test the thing than read a landing page.
The launch was deliberately boring. A Show HN post, directories already submitted, one newsletter announcement. Nobody woke up to a spike. Day one was a trickle — and I want to be honest about that, because the trickle is the real shape of a solo launch. What I did not expect was how much the word public changes the job. A cron failure costs me one run. A public endpoint failure has a face on the other end of the request. So the boring work got done first: scoped API keys, rate counting, error logs I actually read, and a /docs page so a stranger can go from landing page to first successful call without emailing me.
The numbers so far fit on a receipt — and I want them to stay honest there. Day one pulled in a trickle of signups, not a wave. The launch posts I control went out on schedule; the platforms I do not control decide on their own time. I learned this the hard way in August, when a launch-day dependency bump left my messenger dead and the debugging ate an evening for a three-line fix. So this time the launch checklist was the opposite of exciting: rate limits enforced before anyone could test them, billing tested with a real $1 charge and a refund, error logs wired to something I actually read. Boring is the point.
What I am actually proud of is the loop: every request counted, every error logged, every Sunday a review against the five numbers I care about. That loop is the product now — the API is just its interface.
Tools I leaned on: FastAPI (the API), Traefik (edge routing on my Proxmox box), Ollama Cloud (the analyze model), Stripe (billing), and the events log that turns every launch bug into next week's honesty.
Next week: the resume problem — why the first reader of your resume is software, and what I built because of it.