Building a Subscription Platform from Scratch: A Love Letter to My Old Code
I didn’t realize I was building something that would matter so much to me.
When I started writing the first line of subscription-api in Go, I was just trying to solve a problem: how to manage user subscriptions across Apple IAP, Alipay, and WeChat Pay. There was no team, no architecture meeting, no CI/CD pipeline. Just me, a text editor, and a growing sense of ownership.
Over the next few years, I built everything from the ground up:
- The backend in Go (Echo/Chi) subscription-api
- The CMS for managing subscription manually superyard
- The web frontend superyard-react, read-react
- Even a small library to reuse patterns go-rest
I write more than 100 thousand lines of code in around 30 thousand commits. I debugged payment callbacks at midnight. I wrote documentation no one would read. I optimized database queries for faster load times. I set up Jenkins to automate deployments – and taught the ops team how to use it.
And then, one day, I left.
It wasn’t because the code was broken. It was because I was tired.
Tired of being told, “What’s the point of writing good code if the boss can’t see it?”
Tired of hearing, “The company might close tomorrow,” with no follow-up, no clarity.
Tired of feeling invisible.
I wanted to make more money – not for luxury, but to buy my mother a home. I thought leaving would solve that. Instead, I ended up with a two-month job on my resume, and a heart full of regret.
The systems I built are still there, frozen in time. No one has touched them since I left. They’re “dead” in the sense that they’re not evolving – but they’re alive in the sense that they still work. They were built to last.
I look at the GitHub repositories now, and I cry. Not because I failed, but because I cared so much.
I cared about clean code.
I cared about reliability.
I cared about making something that worked, quietly, every day.
If I could go back, I wouldn’t change the code.
I’d change how I treated myself.
I’d ask for help.
I’d talk to someone.
I’d remind myself: what you’re doing matters, even if no one says it does.
This blog post isn’t a technical deep dive. It’s a letter to my past self – and to anyone who’s ever built something in silence, loved it deeply, and walked away.
To my old code: thank you for teaching me what it means to be an engineer.
I’m not done yet.