Week 6 — Friday build in public update
Honest one this week: no new revenue. Still at $20 MRR with 2 paying customers.
But I shipped something important that you cannot see — and that is the point.
What happened this week
Fixed a critical Stripe webhook bug
The webhook secret in .env was pointing to the wrong key — a test-mode vs live-mode mismatch introduced during setup. Every webhook Stripe fired was failing signature verification silently. Payments were processing, but downstream usage tracking was unreliable. Found it, fixed it, confirmed it working.
This is exactly the kind of invisible bug that breaks your product for paying customers without anyone raising a hand.
Turned on the firewall
UFW was installed on the server but inactive. I ran a security audit and found it. Now active, locked to ports 22, 80, and 443 only. This should have been day-one infrastructure. It was not.
Security audit: 0 npm vulnerabilities
Ran npm audit across all 11 services. Clean. No critical or high issues.
Built and launched the customer dashboard
Users now have a place to log in and manage their API keys. Simple, fast, and live on port 3010.
11/11 services stable
No crashes. No memory leaks. Automated morning health check running daily at 7am via cron.
What is live right now
| API | What it does |
|---|---|
| PDF API | merge, split, compress, convert |
| Image API | resize, compress, watermark, convert |
| PDF to JSON API | extract structured data from any PDF |
| QR Code API | generate PNG/SVG/base64, decode from image |
| Invoice API | generate PDF invoices from JSON — 3 templates, 15 currencies |
Pricing starts at $5/month for 100 calls. Free tier: 5 calls/month, no card required.
The honest tension
Revenue is not growing because I have not started marketing properly. I have been heads-down building — 5 APIs in 6 weeks. That is real progress. But code does not sell itself.
This is the classic solo-builder trap: you keep building because building is comfortable, and selling is uncomfortable.
Next week I am stopping new API work and focusing only on:
- Outreach — get 3 external signups from real developers (not test accounts)
- One SEO blog post targeting a real developer search query
- Wire up the free browser tools (merge-pdf, compress-pdf) to capture organic traffic
Numbers this week
| Metric | Value |
|---|---|
| MRR | $20 |
| Paying customers | 2 |
| Waitlist signups | 15 |
| APIs live | 5 |
| Services running | 11 / 11 |
| Blog articles | 7 |
| npm vulnerabilities | 0 |
| Uptime | 100% |
Building slow. Building honest.
I post weekly build-in-public updates every Friday. This is week 6.
Stack: Node.js 20, Express, SQLite, Stripe, Nginx — no VC, no team, no shortcuts.
Top comments (0)