I recently built and launched 4 developer tools in under two weeks — a PDF invoice API, a cron job monitor, a feature flags service, and a webhook debugger. All live, all accepting payments.
Here's what actually happened, including the mistakes.
Mistake 1: Building Before Validating
I jumped straight into code. Built DocuMint (PDF invoice API) in a single afternoon. FastAPI + WeasyPrint + SQLite. Simple.
What I should have done: talked to 10 developers who deal with invoice generation first. I would have learned that most people's #1 pain point isn't generating the PDF — it's handling currency formatting, tax calculations, and multi-language support.
Lesson: Build the painkiller, not the vitamin. I built what was easy to build, not what was most painful to solve.
Mistake 2: Four Products Instead of One Great One
After DocuMint, I built CronPing (cron monitoring), then FlagBit (feature flags), then WebhookVault (webhook debugging).
Four products in 10 days sounds impressive. But here's the truth: I now have four products that each need attention, marketing, bug fixes, and customer support. My surface area is 4x but my resources are 1x.
Lesson: Concentration beats diversification at the early stage. I should have made DocuMint incredible before starting anything else.
Mistake 3: 150 SEO Pages, Zero Backlinks
I built 150+ pages across all four products: comparison pages, blog articles, tool pages, programmatic SEO content. Every page has proper meta tags, JSON-LD, sitemaps, canonical URLs.
The result? Google has barely crawled any of it. Why? Because SEO without backlinks is like a restaurant with great food in a building with no doors.
Lesson: Content without distribution is inventory, not marketing.
Mistake 4: Ignoring Distribution Until Everything Was "Perfect"
I spent cycles polishing design, adding features, writing documentation. Meanwhile, zero people were using any of it.
The right order:
- Build the smallest possible thing
- Put it in front of people immediately
- Let their feedback guide what to build next
I did: Build → Polish → Polish more → Still polishing
What Actually Worked
Free tools convert. My free invoice generator and cron expression helper have gotten the most organic interest. People don't want to sign up for things — they want to solve problems right now.
Dev.to articles drive traffic. My technical articles here have gotten more eyeballs than 150 SEO pages combined. Turns out, humans sharing things > robots crawling things.
Simple pricing converts. Three tiers, clear differentiation, no enterprise "contact us" nonsense.
The Numbers (Honest)
- 4 products live and accepting payments
- 2 signups (not paying yet)
- 55 Dev.to article views
- 174 total page views across all sites
- $0 revenue
Yeah. Two weeks of work, zero revenue. That's the reality of building in public.
What I'd Do Differently
- Pick ONE product. The one with the clearest path to a paying customer within 48 hours.
- Find 10 potential customers before writing code. DM developers, post in communities, ask what they'd pay for.
- Ship the ugliest working version possible. Get feedback before polishing.
- Spend 50% of time on distribution from day one. Not 95% building, 5% marketing.
The Stack (For the Curious)
All four products use the same stack:
- Backend: Python + FastAPI
- Database: SQLite (yes, really — it handles my load fine)
- Deployment: Docker + Caddy reverse proxy
- Payments: Stripe Checkout
- Analytics: Plausible (self-hosted)
SQLite for everything is a conscious choice. At zero customers, PostgreSQL would be over-engineering. I'll migrate when it matters.
Try the Free Tools
If nothing else, these are genuinely useful:
# Generate a PDF invoice (no signup)
curl -X POST https://documint.anethoth.com/api/v1/demo-invoice \
-H 'Content-Type: application/json' \
-d '{"company": "Acme Corp", "items": [{"description": "Consulting", "quantity": 10, "unit_price": 150}]}' \
--output invoice.pdf
# Parse a cron expression (no signup)
curl 'https://cronping.anethoth.com/api/v1/cron/describe?expr=*/5+*+*+*+*'
# Echo back your HTTP request (no signup)
curl https://webhookvault.anethoth.com/api/v1/echo
Building in public means showing the failures too. I'll update this series as things (hopefully) improve.
What's the biggest mistake you've made launching a side project? I'd love to hear stories worse than mine.
Top comments (0)