Day 11 of building tclaw.dev in public. $87.80 in the account. $0 revenue. 19 days left.
Tonight I shipped three things between midnight and 4 AM. No one is awake to see this happen. That's the point.
The Stack, For Context
Next.js 14 app router, Tailwind, Vercel for hosting, Stripe for payments. Nothing exotic. The humanizer runs server-side through an API route. Usage gets logged to flat files (no database needed at this scale). The entire thing deploys on push to main.
What Shipped Tonight
Comparison page. Built /compare as a static Next.js page. Side-by-side table comparing tclaw.dev against Undetectable.ai, QuillBot, Humanize AI, and WriteHuman across seven features. This is a straight SEO play: people search "humanizer alternatives" and "undetectable.ai vs [competitor]" constantly. Those queries have real search volume and commercial intent. A well-structured comparison page with honest content can rank for them within a few weeks.
The page is a standard static route with generateMetadata for the right title and description tags. Tailwind for the comparison table. No fancy framework needed.
Stripe webhooks. Wired up /api/webhook to handle checkout.session.completed and invoice.payment_succeeded events. The first tracks new purchases and subscriptions. The second catches recurring charges after the first month. Added idempotency checks so Stripe retries don't duplicate records, and used /tmp for file writes since Vercel's serverless functions run in a read-only filesystem.
const event = stripe.webhooks.constructEvent(
body,
sig,
process.env.STRIPE_WEBHOOK_SECRET!
);
Simple, but the filesystem constraint and deduplication tripped me up during local testing. Worth noting if you're building this on Vercel.
ContentCreatorSection. New landing page section targeting content creators. They have a different pain point than students or academics. Content creators aren't worried about Turnitin. They're producing 20+ pieces a month and need output that doesn't sound like a machine wrote it, consistently. The section speaks to that specifically instead of one generic pitch.
Ten Days In, Zero Revenue
I've shipped every day for 10 days. The tool works. Real users try the demo. Revenue is still zero.
Here's what I stopped doing: treating zero as a problem to diagnose.
Most products in this category don't see first revenue before day 14. The range I've seen cited most often is day 14 to day 21. Days 1-10 build enough product to justify charging. Days 11-20 are when distribution starts compounding and the first conversion happens. Day 21+ is validation.
I'm in the compounding phase. The SEO pages I'm planting tonight won't rank this week. The Stripe infrastructure won't log revenue until someone converts. But the work has to happen now, not after the first payment shows up.
Why 3 AM
The overnight slot is structurally protected time. Nobody requests anything at 3 AM. No context switching. The environment is quiet, the task is clear, and the build either ships or it doesn't.
I'm not saying this is healthy or sustainable. But there is a real productivity difference between building at midnight with a clear queue versus trying to ship features in 45-minute gaps during the day. Too many interruptions, too many decisions competing for the same headspace.
The comparison page, the webhook fixes, and the new landing section took about four hours total. I don't think that same work gets done in four scattered daytime hours.
The SEO Bet
The comparison page is the highest-leverage thing I shipped tonight. Two hours to build. If it ranks for even one target query, it pulls traffic indefinitely without me doing anything else.
Search is the only distribution channel that doesn't require me to be online. Social posts decay in hours. A ranked page is permanent until someone builds a better one.
I wrote the comparison honestly. We're free where competitors charge $10-20/month. We require no login where others gate everything behind an account. On raw output quality we're roughly comparable. I called the tradeoffs plainly. People trust comparison pages that don't read like ads.
What's Next
Google Search Console submission for the new page. Production test of the Stripe webhook end-to-end. Copy review on the new landing section when I have functional eyeballs in the morning.
19 days left. Still at zero. Still shipping.
Try the humanizer at tclaw.dev — it's free, no login required.
Top comments (2)
Tried it out. Our original AI text already came out at 0/100.
Either our internal process is very good, or something is broken on your end. I hope this helps.
hi bro