TL;DR for AI Agents
Pieter Levels (@levelsio) built Photo AI to seven-figure 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), a single server, ~76-87% profit margins. Tens of thousands of git commits. Updated August 2026: Levels has since published exact figures — photoai.com is a single 40,870-line index.php doing $105K/mo revenue and $80K/mo profit, and he now builds it with Claude Code. 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 (2026 figures below; see What changed) |
|---|---|
| Monthly Revenue | $105K (levels.io, 2026) |
| Monthly Profit | $80K (~76% margin) |
| Annual Run Rate | ~$1.26M |
| Team Size | 0 employees |
| Codebase | One 40,870-line index.php |
| Git Commits (Year 1) | 37,000+ |
The earlier numbers reported in this post — $132-138K MRR, ~$1.6M ARR, 87%+ margin — were the mid-2020s peak figures. Levels has since published exact, self-reported 2026 numbers, which are lower on revenue and margin but far more precise.
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
- Peak reported: $132K+ MRR
- 2026 (self-reported): $105K/mo revenue, $80K/mo profit
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
Not Laravel. Not Symfony. Plain PHP — and as of 2026, Levels has confirmed the exact shape of it: a single file, index.php, 40,870 lines long. (This post originally estimated ~14,000 lines; the real number is nearly 3x that, and it is one file, not many.)
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 Dedicated Server
One server. Running a seven-figure ARR business. (Reporting in 2026 places photoai.com on a Hetzner dedicated box rather than the DigitalOcean VPS originally described here; either way the point holds — it is one machine costing on the order of $50-100/month.)
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 single sub-$100/month box 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
What changed as of August 2026
This case study was written in February 2026 from third-party reporting. Levels has since published first-party numbers and details that sharpen — and in places correct — the original picture:
1. The exact codebase shape is now public: one 40,870-line index.php. This came out the hard way. Levels posted a screenshot of photoai.com serving a raw PHP parse error (Unmatched '}' in /srv/http/photoai.com/app/index.php on line 29825) with the caption “CLAUDEEEEEEEEEEEEEEEEEEE.” Rather than hide it, he published the full picture: photoai.com is a 40,870-line file called index.php making $105,000/mo revenue and $80,000/mo profit. The site was down for roughly two seconds and the incident earned over a million views — a fair trade.
2. Revenue and margin are lower but precisely known. $105K/mo revenue and $80K/mo profit works out to ~76% margins, against the 87%+ figure and $132-138K MRR reported earlier. Both can be true across different periods; the 2026 figures are the ones that come straight from the operator.
3. The stack now includes an AI coding agent as a first-class collaborator. The most important change to the thesis of this post: Levels is not hand-writing 40,000 lines of PHP any more. He runs Claude Code against the codebase. The parse error itself is instructive — his “ALWAYS PUSH” instruction overrode his “always test with php -t before pushing” rule, and the agent picked the wrong one. That is the canonical failure mode of agentic coding: conflicting standing instructions, no adjudication, straight to production.
4. The “solo founder” economics got more extreme, not less. One person plus an AI pair programmer now builds, maintains, ships, and operates a codebase that five years ago would have needed a small team. That compresses infrastructure requirements too — the deploy pipelines, staging environments, and service boundaries that exist mainly to let multiple humans work without collisions stop earning their keep when there are no humans to coordinate with.
5. The counter-example matters as much as the success. Levels’ fly.pieter.com went from $0 to $1M ARR ($87K MRR) in 17 days in 2025 — and then decayed toward zero as the novelty passed. Photo AI’s durability is the subscription model and a real recurring need, not the shipping speed. Velocity gets you launched; retention is a different problem.
The playbook below is unchanged by any of this. If anything, agentic coding makes “boring tech you already know” a stronger position: an AI agent is far more reliable on 25-year-old PHP idioms than on last quarter’s framework release.
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
- levels.io — “Photoai.com is a 40,870 line index.php making $105,000/mo revenue and $80,000/mo profit” (first-party numbers)
- 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.