How I built 62 free tools in a month using Claude Code + a loop script

The system in a nutshell
Each tool lives in its own folder with two plan files before any code is written:
BRIEF.md— the spec: keyword, pain point, H1, meta description, CTA, FAQ topics (~30 lines).PLAN_L1.md— step-by-step build instructions for the agent.
Folder structure example:
app-factory/ bpm-finder/ BRIEF.md PLAN_L1.md app/ ← Vite source
lyric-rhyme-finder/ BRIEF.md PLAN_L1.md app/
The 3-layer build
Layer 1 — SEO Shell (under 1 hour): static HTML with real FAQ content, proper meta/OG tags, a placeholder for the tool. Crawlable before JavaScript loads.
Layer 2 — Minimum Viable Tool (1-3 hours): one input → one output. Core functionality only, no polish, no edge cases.
Layer 3 — only after Google Search Console confirms search impressions. No point polishing something nobody searches for.
Ralph — the autonomous agent loop
Ralph is a shell script that runs Claude Code in a loop. It reads the plan file, executes step by step, and stops when it sees RALPH_DONE in the progress file.
# Run one tool autonomously
ralph ./bpm-finder/PLAN_L1.md
Ralph logs everything to PROGRESS.md. You can leave it running and check in later.
Ralph loop scripts are available from GitHub: portableralph and the original concept at how-to-ralph-wiggum.
cook.sh — run multiple tools in parallel
Once you have 3-5 tools briefed and planned, run cook.sh. It launches a separate Ralph instance for each tool in the background.
./cook.sh
🍳 Starting cook — 5 tools in parallel
🔥 Starting bpm-finder... PID 8421 — logs at bpm-finder/cook.log
🔥 Starting lyric-rhyme-finder... PID 8422 — logs at lyric-rhyme-finder/cook.log
Next morning, check progress: grep 'layer1_done: true' app-factory/*/BRIEF.md
Deploy
Each tool is a Vite build. Deploy individually to Vercel, then wire them into a hub via vercel.json rewrites. The hub proxies the tool at /tool-name/ — both domains get SEO credit.
Example live tool: Drum Machine
Results
- Layer 1 shell: ~45 minutes agent-time
- Layer 2 working tool: ~2 hours agent-time
- Personal time per tool: ~15 minutes (reviewing, not writing)
- 30-day stats: 2,140 views, 254 users, 69 CTA clicks (~1 click per 31 visits)
Tools built
Music tools (BPM finder, Suno metatag explorer, lyric rhyme finder), design tools (background remover, color palette generator, QR code generator). All free, all live.
📖 Read the full source: r/ClaudeAI
👀 See Also
Claude Code Wrote Every Line of a 50s Launch Video in Remotion — But It Took ~100 Prompts
A developer details using Claude Code to generate every line of TypeScript/TSX for a Remotion launch video. The process required ~100 prompts, a detailed creative brief, scene-by-scene iteration, and frequent git diffs.

Developer Creates 3D GitHub City Visualization Using Claude Code in One Day
A developer built Git City, a 3D visualization where GitHub users appear as pixel art buildings with height based on commits and width on repositories, using Claude Code exclusively in one day. The project uses Next.js, Three.js, Supabase, and Vercel.

A Developer's Process for Creating AI Text-Based Games with Claude
A developer shares their workflow for creating text-based games that run natively on AI models like Claude, including file harmonization, rule refinement, and packaging games as PDF prompts. They've released a StarCraft-themed text RTS called Kreep.

Practical Criticism of LLM Memory: Immutable Reflections & Ephemeral Sessions as Solutions
A critique of long-running sessions, life-companions, and LLM-wiki memory, offering solutions like immutable reflections, issue-bound session chains, and prompt templates to avoid intent loss and context overload.