I built 7 AI tool sites. A paper rewriter, a copywriter, a resume optimizer, a weekly report generator, an email generator, a meeting notes tool, and an AI navigation site.
Each one took me days to build. And each time, I was rebuilding the same infrastructure:
- API key management (input, validation, localStorage)
- SSE streaming (progressive output, abort, error handling)
- Responsive UI (mode tabs, input/output panels, copy button)
- SEO setup (meta tags, Open Graph, JSON-LD)
- Deployment config (GitHub Pages, Vercel, etc.)
By tool #7, I realized: I was solving the same problems 7 times instead of solving them once.
The mistake
I thought I was building products. I was actually building infrastructure — over and over.
The actual "product" part of each tool — the prompts, the modes, the domain knowledge — was maybe 10% of the code. The other 90% was boilerplate I had already written for the previous tool.
What I did
I distilled the common code from all 7 tools into a single config-driven boilerplate called ShipAI.
The idea: edit ONE file (config.js), ship a new AI tool.
// config.js - this is the only file you edit
const CONFIG = {
site: { name: 'My AI Tool', description: '...' },
api: { endpoint: 'https://api.deepseek.com/v1/chat/completions' },
modes: [
{ id: 'rewrite', label: 'Rewrite', prompt: 'Rewrite: {{input}}' },
{ id: 'expand', label: 'Expand', prompt: 'Expand: {{input}}' },
],
}
That's it. The boilerplate handles:
- API key input + validation + localStorage
- SSE streaming with abort + error handling
- Responsive UI (Tailwind, no build step)
- SEO template (meta, OG, JSON-LD)
- Copy button, loading states, empty states
Pure frontend. No backend, no servers, no npm install. Deploy to GitHub Pages for free.
What I learned studying successful indie hackers
After building 7 tools that nobody used, I studied every verifiable indie hacker success story I could find:
- Pieter Levels (@levelsio): 70+ projects, 95% failed. Ships in days, not weeks. PHP + jQuery (not fancy frameworks).
- Marc Lou (@marclouvion): 30 failed projects before ShipFast ($249) took off. Now $100K+/month with 16 products.
- Filip Panoski: Failed 5 times. Learned B2B > B2C, subscription > one-time, validate with waitlist BEFORE coding.
The pattern was clear: they all built audiences BEFORE products, not the other way around.
I did it backwards. I built 7 products with zero audience. This time, I'm doing it right — building in public from day one.
What's next
- Ship the boilerplate ($199 one-time, inspired by ShipFast)
- Build in public — share revenue, failures, process
- Launch more products for indie devs
- Cross-promote
Day 1. Revenue: $0. Followers: 0. Let's see what happens.
If you're building AI tools, check out ShipAI. It might save you the 7 failed attempts it took me to learn these lessons.
This is part of my build-in-public journey. I'll share updates as I go — the good, the bad, and the $0 revenue reports.
Top comments (0)