Blog
my thoughts and musings.
Google Started "Recommending" My Product After Just 45 Days
45 days after launch, Google search results showed Sitelinks for my product. No application needed—Google generates them automatically. This is a form of quality endorsement. Here's how to do basic SEO right and let Google vouch for you.
SaaSSome Money Is Better Not Earned
After 2 years of ad monetization, I quit completely. Not because it didn't make money, but because it made me uncomfortable. Some money is better left on the table—not out of nobility, but because you can only go far doing what you truly believe in.
Build In Public6 Steps to Monetize a Small but Beautiful SaaS as an Indie Dev
Monetization is not just about launching and collecting payments — it is a complete chain: demand → product → content → traffic → sales → revenue. Here are 6 actionable steps for indie developers.
SaaS10 Ways to Discover Product Demand
Demand is not invented — it is discovered. A framework of 10 gap types across 3 layers to systematically find your next product idea.
SaaSHow Users Quietly Leave Your Product — A Bowl of Noodles Taught Me
User churn rarely comes from one big bug. It comes from stacked small disappointments. A noodle shop visit revealed the pattern every indie developer should watch for.
Build In PublicIndie Dev at 33: Prime Years to Hustle, but My Doctor Said Stop
At 33, months of intense indie dev work caught up with me. My doctor said I needed to rest for months. From resistance to acceptance — slowing down isn't giving up, it's waking up.
Indie LifeFinally Finished What I Procrastinated for a Week, Only to Discover: 'Hassle' is a Gift in Ugly Wrapping
Procrastinated on making a demo video for a week because it felt too much hassle. Finally finished it and discovered that the 'hassle' itself was the competitive advantage.
Indie LifeHow I Make Sure SaaS Subscription Expiry Never Slips Through
Webhooks handle 99% of subscription state changes, but what about the other 1%? Here's the 3-layer defense I built — 1 passive + 2 active fallbacks — to guarantee no expired subscription ever goes unnoticed.
SaaSWhy I Removed Immediate Cancel from SaaS Subscriptions
Immediate cancel looks like giving users a choice, but it actually bundles refund disputes, credit ambiguity, and lost value into one hidden landmine. Here's why I deliberately removed it.
SaaSWant to Make Money, But Hate Selling — Because I Don't Want to Become That Person
Many developers build great products but freeze at the selling part. It's not laziness — it's an identity conflict. Here's how I resolved it.
Build In PublicA Steamed Bun Taught Me How Developers Actually Sell
A conversation with a dumpling shop owner revealed the real reason customers trust and pay. The same principle applies to selling code products as an indie developer.
Build In Public4 Claude Code Tips I Use Daily as an Indie Dev
4 practical Claude Code tips for indie developers: paste images with Alt+V, resume conversations, reduce rework when integrating third-party APIs, and debug more efficiently.
Build In Public3 Unavoidable Problems When Using Claude to Build SaaS Subscriptions
Claude Code is powerful, but subscription logic isn't a one-shot task. AI drops edge cases, doesn't understand your business rules, and misses the race conditions that break payments.
SaaSAfter Uninstalling Claude, My Insomnia Got Better.
After uninstalling Claude from my phone and tablet, I rediscovered the quiet moments that make life feel whole — folding clothes, sewing a pillow, smelling rice porridge. Not every thought needs an AI response.
Indie LifeWhy Global SaaS Subscriptions Are So Much More Complex Than You Think
SaaS subscriptions go far beyond 'pay and cancel.' Upgrades, downgrades, prorations, trials, payment failures — here's a breakdown of every scenario you need to handle.
Build In PublicThe Best Way to Display 4 Payment Options in Your SaaS
Why do top SaaS products only show one payment button? Lessons from Tailwind CSS, Grammarly, and TinyPNG — fewer choices mean less friction, and restraint is the real design.
SaaSI Spent 300 Hours Building a SaaS Payment System So Nothing Goes Wrong
From breaking down at test case #16 to covering 30+ payment edge cases over 300 hours. Code isn't the hard part — making sure it's correct is, especially when money is involved.
Build In PublicI Bought 3 Services Today and Finally Understood Why Users Pay
Spending less than 300 RMB on computer cleaning, range hood service, and washing machine maintenance revealed three types of paying customers: those who can't do it, those who won't bother, and those who tried and failed.
Build In PublicThe First Fear I Faced as an Indie Developer
Deploying servers, integrating multiple payment methods—none of that fazed me. But one thing triggered real fear for the first time: selling my product. Selling isn't 'I want to sell you something,' it's 'I understand your situation, and I happen to have an answer.'
Build In PublicI Joked About Going Fullstack 2 Months Ago. It Actually Happened.
Code can be written by AI, but every decision is mine. How a frontend developer became fullstack in 2 months without writing backend code — through judgment, not syntax.
Build In PublicTook 3 Days Off After Launch, Zero Guilt.
Launched on Monday, then did absolutely nothing for 3 days. No guilt whatsoever. Here's why strategic downtime after intense work is actually productive.
Indie Life4 Pricing Models x 4 Payment Methods: How I Built a Zero-Code SaaS Monetization System
After 300+ hours, I built a complete SaaS monetization system supporting 4 pricing models and 4 payment providers with zero code changes — just config files.
SaaSPayPal, Creem: Best Practices to Avoid Infinite 7-Day Trial Period Loop
Trial periods boost conversions, but without proper logic, users can trial indefinitely. Here's how to implement trial-once enforcement in Creem and PayPal without platform-level parameter support.
SaaSThe Ideal Solution for Supporting Both Domestic and International Payments
Lemon Squeezy takes $12.95 per sale, and Stripe requires an overseas company — what's an indie developer to do? I split payments: Alipay (0.6% fee) for China, Creem + PayPal for international — compliant, cheap, no overseas entity needed.
SaaS5 Ideal Payment Solutions for SaaS Platforms
A practical guide for indie developers on how to receive international payments via Stripe, Creem, PayPal, Paddle, and Lemon Squeezy — including withdrawal methods, fees, and the best routes to get money back to China.
SaaS