Everyone tells solo builders to “just ship it.” Nobody tells you what “it” looks like at month 8 when you have 4 half-finished products and a stack of tech debt. I learned the hard way, across 10+ products, what actually moves the needle and what’s just noise.
Velocity matters more than architecture
I spent the first year building “the right way.” Clean abstractions, proper separation of concerns, design patterns. It took forever and taught me nothing I couldn’t have learned from a blog post.
Then I started shipping ugly. My first scraper for Infollion was 200 lines of Python held together with duct tape. It broke constantly. But it ran every night and it worked. I shipped it, got feedback, fixed what broke, and moved on.
The stack I use today wasn’t planned. It was discovered through shipping. Each project removed a pain point from the last one until things started clicking naturally.
Lesson: Ship first, refactor based on real problems. The best architecture comes from scars, not whiteboards.
Cost kills AI products faster than bugs
I built per-workspace LLM cost metering into MarketifyALL before I built most of the features people use. That felt backwards at the time. It wasn’t.
One tenant using GPT-4 for every minor request can 10x your bill overnight. I watched this happen to a friend’s startup. They shipped an AI feature without cost tracking, got featured on Product Hunt, and had a $2,000 AWS bill in 48 hours.
The same applies to latency. Users tolerate bugs for weeks. They abandon slow responses in seconds. Voice AI specifically: sub-500ms response time is the difference between “this feels like a real person” and “this is clearly a robot.” Users don’t measure latency consciously. They just feel it.
Lesson: Instrument costs and latency before instrumenting features. Money and time are the only non-negotiable constraints.
The boring stuff compounds
Test coverage. Monitoring. Evaluation loops. Documentation. CI/CD.
Every project I skipped these on, I regretted within three months. Every project I invested early, I shipped faster over time. The math is simple: fixing a bug after deployment costs 10x what catching it in CI costs.
My email-probe SDK has full test coverage on every layer. It’s the most boring code I’ve written. It’s also the most reliable. The test suite caught 4 regressions before they reached npm.
Lesson: The unglamorous infra is the difference between sustainable shipping and burnout. One person can maintain 10 products. One person cannot maintain 10 products without tests.
AI is a layer, not a product
The projects that worked built AI into something people already needed. Dealer’s Dash made financial analysts faster. MarketifyALL made marketers faster. The AI was invisible to the end user. They didn’t think about “using AI,” they thought about “getting their work done.”
The projects that struggled started with AI and looked for a problem. This is the trap.
Lesson: Solve a real problem first. Make it 10x better with AI. Never the other way around.
The stack that survived
After three years and 10+ projects, here’s what I reach for by default:
- Frontend: Next.js App Router with React. Server components handle multi-tenant data fetching without a separate API layer.
- Backend: FastAPI (Python). Type-safe, fast, and the Python ecosystem for AI/ML is unmatched.
- Database: Supabase with PostgreSQL. RLS handles authorization at the database layer.
- Async: Trigger.dev. Simpler than Temporal, more reliable than manual cron jobs.
- AI: Claude API for quality. OpenAI for speed. Groq for latency-critical paths.
- Hosting: Vercel for frontends. AWS for anything stateful.
This stack isn’t important. What’s important is that I arrived at it by shipping, not by reading. Every piece earned its place by solving a real problem I hit in production.
What I’d tell myself three years ago
- Ship the ugly version. Nobody remembers version 1.
- Measurements before features. Costs, latency, error rates. Always.
- Tests are a force multiplier, not a tax.
- AI is the how, not the what. Nobody buys “AI.” They buy “faster,” “cheaper,” “easier.”
- The stack doesn’t matter. The shipping does.
Three years, ten products, zero co-founders. It’s been the hardest and most educational period of my career. On to the next ten.