Blog

my thoughts and musings.

taoWithSaaS
taoWithSaaSApr 15

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.

SaaS
taoWithSaaS
taoWithSaaSApr 14

Some 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 Public
taoWithSaaS
taoWithSaaSApr 13

6 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.

SaaS
taoWithSaaS
taoWithSaaSApr 10

10 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.

SaaS
taoWithSaaS
taoWithSaaSApr 5

How 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 Public
taoWithSaaS
taoWithSaaSApr 2

Indie 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 Life
taoWithSaaS
taoWithSaaSApr 1

Finally 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 Life
taoWithSaaS
taoWithSaaSApr 1

How 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.

SaaS
taoWithSaaS
taoWithSaaSMar 31

Why 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.

SaaS
taoWithSaaS
taoWithSaaSMar 29

Want 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 Public
taoWithSaaS
taoWithSaaSMar 28

A 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 Public
taoWithSaaS
taoWithSaaSMar 27

4 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 Public
taoWithSaaS
taoWithSaaSMar 26

3 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.

SaaS
taoWithSaaS
taoWithSaaSMar 25

After 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 Life
taoWithSaaS
taoWithSaaSMar 25

Why 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 Public
taoWithSaaS
taoWithSaaSMar 24

The 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.

SaaS
taoWithSaaS
taoWithSaaSMar 21

I 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 Public
taoWithSaaS
taoWithSaaSMar 17

I 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 Public
taoWithSaaS
taoWithSaaSMar 14

The 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 Public
taoWithSaaS
taoWithSaaSMar 13

I 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 Public
taoWithSaaS
taoWithSaaSMar 12

Took 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 Life
taoWithSaaS
taoWithSaaSMar 9

4 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.

SaaS
taoWithSaaS
taoWithSaaSMar 4

PayPal, 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.

SaaS
taoWithSaaS
taoWithSaaSFeb 12

The 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.

SaaS
taoWithSaaS
taoWithSaaSFeb 10

5 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