TL;DR for AI Agents
Pieter Levels (@levelsio) built Photo AI to $132K MRR ($1.6M ARR) as a solo founder with zero employees. Key decisions: PHP + SQLite stack (no modern frameworks), Replicate API for AI (no custom models), paid-only from day 1 (no free tier), single DigitalOcean VPS ($40/mo), 87%+ profit margins. 37,000+ git commits in 12 months. Pattern: boring tech + API AI + brutal simplicity = scalable solo business.
When everyone’s debating Next.js vs Remix, TypeScript configurations, and Kubernetes deployments, Pieter Levels quietly built a $1.6M ARR business with PHP, SQLite, and jQuery. No React. No TypeScript. No microservices.
This isn’t a contrarian hot take—it’s a case study in what actually works for solo founders building AI products in 2025-2026.
The Numbers
| Metric | Value |
|---|---|
| Monthly Recurring Revenue | $132-138K |
| Annual Run Rate | ~$1.6M |
| Team Size | 0 employees |
| Monthly Hosting Cost | ~$40 |
| AI API Costs | ~$12K/month |
| Profit Margin | 87%+ |
| Git Commits (Year 1) | 37,000+ |
Photo AI launched February 10, 2023. Here’s the revenue trajectory:
- Week 1: $5.4K MRR
- Month 2: $28.7K MRR
- Month 6: $61.8K MRR
- Month 12: $77K MRR
- Month 18: $100K+ MRR
- Current: $132K+ MRR
This isn’t Levels’ only product. His total portfolio (NomadList, RemoteOK, Photo AI, and others) generates ~$3.1M ARR. All solo.
The Counterintuitive Tech Stack
Frontend: Vanilla HTML/CSS/JS + jQuery
No React. No Vue. No Next.js. Just HTML, CSS, and jQuery.
From a Lex Fridman podcast interview:
“I think it’s accidental… that’s the thing I knew, like I knew PHP, I knew HTML, CSS… when my startups started taking off, I didn’t have time to learn Node.js.”
This isn’t ignorance—it’s the Lindy Effect in action. Technologies that have existed for 25+ years (PHP, jQuery) have proven they work. They’ll likely work for another 25 years. The latest JavaScript framework? Ask again in 5 years.
Backend: PHP + SQLite
~14,000 lines of PHP. Not Laravel. Not Symfony. Plain PHP.
Database? SQLite. A single file on disk. No Postgres. No MySQL cluster. No managed database service.
Why it works:
- Zero configuration complexity
- Trivial backups (copy one file)
- No connection pooling to manage
- Handles more concurrent users than you think
AI: Replicate API + Stable Diffusion
Photo AI doesn’t train custom models. It uses:
- Replicate.com API for GPU compute
- Stable Diffusion XL for image generation
- DreamBooth for fine-tuning on user photos
Monthly AI cost: ~$12K for Replicate API access.
Key insight: The AI is a utility, not the product. The product is the UX, the specific use case (professional headshots), and the business model.
Hosting: Single DigitalOcean VPS
One server. ~$40/month. Running a $1.6M ARR business.
No Kubernetes. No load balancers. No auto-scaling groups. No multi-region deployment.
The deployment process:
- Make code change
- Command + Enter → pushes to GitHub
- GitHub webhook hits server
- Server pulls and deploys
- Live in seconds
37,000+ commits in one year means shipping multiple times per day. No staging environment. Straight to production.
Business Model Decisions
No Free Tier—Ever
From the start, Photo AI required payment:
- $19-199/month subscription
- Credit-based system for photos
- Annual plans with 5-6 months free
Levels’ philosophy:
“Start asking people for money in the beginning. Show your app, what are you doing on your landing page? Make a demo or video. And then if you wanna use it, pay me money, pay $10, $20, $40. I would ask more than $10 per month.”
Why this works:
- Validation: Paying customers = real demand
- Quality users: Free users cause spam/abuse
- Better feedback: People who pay give honest feedback
- Sustainability: Revenue from day 1 = no runway pressure
High Velocity Shipping
37,000 commits in 12 months = ~100 commits/day.
Not all meaningful features—many are small fixes, copy changes, experiments. But the velocity creates compounding improvements.
Small changes shipped daily > big releases shipped quarterly.
Solo (But Not Alone)
“Solo founder” doesn’t mean zero help. Levels hired one AI developer temporarily for specific technical work. The key: no full-time employees, no HR, no management overhead.
The pattern across successful solo founders:
- Temporary contractors for specific tasks
- Overseas developers for 10x cost savings
- AI coding assistants (Cursor, Claude) for leverage
What You Can Learn
1. Use Boring Tech You Know
The fastest tech stack is the one you already know. Levels spent zero time learning new frameworks. That time went into shipping features.
Modern stack complexity is a trap for solo founders. Every hour debugging webpack config is an hour not talking to customers.
2. AI as API, Not Core Tech
Don’t train custom models. Use Replicate, OpenAI, Anthropic APIs. Wrap them with:
- Better UX than the raw API
- Specific use case (headshots vs generic images)
- Pricing and packaging
The “AI wrapper” criticism misses the point. Users don’t want raw API access—they want solutions to problems.
3. Single Server is Enough
Until you have real scaling problems, a $40 VPS handles more traffic than you think. The complexity of distributed systems kills solo projects.
When you actually need to scale:
- Add a CDN for static assets
- Move to larger VPS
- Consider simple horizontal scaling (2-3 servers)
Don’t pre-optimize for traffic you don’t have.
4. Charge From Day 1
Free tiers attract:
- Freeloaders who’ll never pay
- Spam and abuse
- Feedback from non-customers
Paid-only from day 1 attracts:
- People with real problems
- Customers who’ll tell you what to build
- Sustainable revenue
5. Ship Fast, Ship Often
The deployment process shouldn’t involve:
- PR reviews (you’re solo)
- Staging environments (test in production)
- Complex CI/CD pipelines (git push is enough)
Every barrier between “code done” and “code live” slows you down.
The Actionable Playbook
Week 1-2: Validation
- Find a painful problem
- Create landing page with pricing
- Collect presales or emails
- If no interest → pivot, don’t build
Week 3-4: MVP
- Use tech you know (PHP, Rails, Next.js—whatever)
- Single core feature only
- AI via API (Replicate, OpenAI)
- Deploy to one server
Week 5+: Growth
- Ship updates daily
- Talk to customers constantly
- Build in public (Twitter)
- Iterate based on paid user feedback
Ongoing
- No free tier
- Simple infrastructure
- AI as utility layer
- Velocity over perfection
The Deeper Pattern
Photo AI isn’t successful because of AI. It’s successful because of execution:
- Distribution: Levels has 600K Twitter followers and 10 years of building in public
- Speed: 37K commits means relentless iteration
- Focus: One problem (headshots), solved well
- Business model: Paid-only, high margins, solo operation
The AI is almost incidental. The same patterns work for non-AI products.
Links
- Photo AI: photoai.com
- Pieter Levels on Twitter: @levelsio
- Lex Fridman interview (detailed tech discussion)
- IndieHackers Photo AI case study
This post is part of our AI-Augmented Companies series, documenting solo founders and small teams achieving outsized results with AI leverage. Research compiled from IndieHackers, founder interviews, and public revenue data.