PGNCoach — Paste Your Chess Game, Get a Narrative Coaching Report in 60 Seconds Without Paying for a Human Coach
You lost a rated game, downloaded the PGN, fed it to Stockfish, and stared at a wall of centipawn numbers that told you nothing useful. PGNCoach takes your game, runs Stockfish analysis, and outputs a plain-English coaching report that explains why you lost the knight on move 22 like a patient grandmaster — not a CPU.
Difficulty
beginner
Category
Education
Market Demand
High
Revenue Score
7/10
Platform
Web App
Vibe Code Friendly
No
Hackathon Score
🏆 8/10
What is it?
Chess club players and online tournament participants consistently complain on Reddit r/chess and Lichess forums that Stockfish analysis gives raw evaluations with zero pedagogical context, and human coaching costs $60-$200 per hour. PGNCoach solves this by accepting a PGN paste, running it through Stockfish.js in the browser (no server cost), and feeding the top-3 critical moments to Claude with the position FEN and move history to generate a narrative coaching explanation per blunder. Output is a PDF report with annotated diagrams. Priced at $9/month for unlimited games after a pay-per-report free tier of 2 games per month. Buildable in 2 weeks because Stockfish.js runs fully in-browser via WebAssembly, Chess.js handles PGN parsing, and Claude's narrative output for chess positions is excellent.
Why now?
Stockfish.js 16 with WebAssembly runs analysis fast enough in-browser to eliminate server costs entirely, and Claude claude-3-haiku produces remarkably coherent chess coaching explanations at under $0.01 per game — making the $9/month economics work for the first time in May 2026.
- ▸PGN paste input with Chess.js validation and move-by-move Stockfish.js analysis running client-side in WebAssembly.
- ▸Claude-generated narrative explanation for the top 3 blunders per game with plain-English 'why this was bad and what to do instead'.
- ▸Chessboard diagram rendered at each critical moment using chessboardjs or react-chessboard.
- ▸PDF export of the full coaching report for printing or sharing with a human coach.
Target Audience
Online chess players rated 800-1800 Elo who play 5+ rated games per week — Lichess has 15M registered users and Chess.com has 150M accounts, with the 800-1800 bracket being the largest and most monetizable segment.
Example Use Case
Marcus, a 1350-rated club player, pastes his tournament loss PGN, gets a coaching report in 45 seconds explaining that his bishop trade on move 18 gave White a permanent pawn structure advantage, with a diagram showing the resulting weak squares — he replays the position and finally understands what happened.
User Stories
- ▸As a 1200-rated club player, I want plain-English explanations for my top 3 blunders, so that I understand what I did wrong without paying $80/hour for a human coach.
- ▸As a tournament player, I want a PDF coaching report I can print and review before my next game, so that I can study my mistakes offline during my commute.
- ▸As a chess teacher, I want to paste a student's PGN and get an annotated report in 60 seconds, so that I can spend lesson time on discussion instead of manual annotation.
Done When
- ✓PGN analysis: done when user pastes a valid PGN and within 30 seconds sees a report with at least 2 blunder cards each showing a chessboard diagram and a plain-English coaching explanation.
- ✓Diagram render: done when each blunder card shows the exact board position at the moment of the mistake with the played move and the best move indicated.
- ✓Free limit gate: done when a user who has submitted 2 analyses sees a paywall prompt on their third submission with a link to the $9/month checkout.
- ✓PDF export: done when user clicks Download Report and receives a PDF within 5 seconds containing all blunder cards with diagrams and coaching text.
Is it worth building?
$9/month x 300 users = $2,700 MRR at month 3. $9/month x 1,200 users = $10,800 MRR at month 8. Math assumes 1.5% conversion from Reddit r/chess, Lichess forums, and Chess.com community posts.
Unit Economics
CAC: $3 via organic Reddit posts. LTV: $108 (12 months at $9/month). Payback: less than 1 month. Gross margin: 90%.
Business Model
Freemium with paid subscription
Monetization Path
2 free reports per month, $9/month for unlimited, $4.99 one-off report for casual users.
Revenue Timeline
First dollar: week 2 via pay-per-report on Reddit traffic. $1k MRR: month 2. $5k MRR: month 7.
Estimated Monthly Cost
Claude API: $50 (haiku is cheap per analysis), Vercel: $20, Supabase: $25, Stripe fees: $20. Total: ~$115/month at launch. Stockfish runs client-side so zero server compute cost.
Profit Potential
Full-time viable at $6k-$12k MRR given massive chess audience and low CAC via community posts.
Scalability
High — add opening repertoire reports, game series trend analysis, and coach marketplace in V2.
Success Metrics
Week 1: 500 free analyses completed. Week 3: 80 paid upgrades. Month 2: 65% month-1 retention.
Launch & Validation Plan
Post a working free demo link in r/chess, r/chessbeginners, and Lichess forums before launching paid tier — validate 1,000 free analyses before charging.
Customer Acquisition Strategy
First customer: post a free demo link in r/chess with a title like 'I built a tool that explains your blunders in plain English instead of centipawns — try it free' and convert vocal fans to paid. Ongoing: Reddit chess communities, Chess.com forum posts, YouTube chess creator partnerships, SEO targeting 'chess game analysis explained'.
What's the competition?
Competition Level
Medium
Similar Products
Lichess computer analysis (free but no narrative explanation), Chess.com game review (free tier limited, no coaching language), ChessKid coaching (subscription but human-only) — PGNCoach fills the narrative AI coaching gap at $9/month.
Competitive Advantage
Narrative coaching output in plain English is the moat — Lichess gives centipawns, humans cost $80/hour, PGNCoach gives the explanation in between for $9/month.
Regulatory Risks
Low regulatory risk. No PII beyond email. GDPR data deletion endpoint required for EU users.
What's the roadmap?
Feature Roadmap
V1 (launch): PGN paste, Stockfish blunder detection, Claude coaching narrative, board diagrams, PDF export. V2 (month 2-3): opening name detection, game series trend report, Lichess game import via URL. V3 (month 4+): coach marketplace, multi-game repertoire gap analysis, mobile PWA.
Milestone Plan
Phase 1 (Week 1-2): PGN parser, Stockfish WASM worker, Claude coaching API ships. Phase 2 (Week 3-4): auth, Stripe billing, PDF export, free limit gate live. Phase 3 (Month 2): Reddit launch, 100 paid users target, Lichess URL import added.
How do you build it?
Tech Stack
Next.js, Stockfish.js (WASM), Chess.js, Claude API, Supabase, Stripe — build with Cursor for PGN analysis pipeline, v0 for report layout components
Suggested Frameworks
Stockfish.js WASM, Chess.js, Claude API claude-3-haiku
Time to Ship
2 weeks
Required Skills
Stockfish.js WebAssembly integration, Chess.js PGN parsing, Claude API structured output, PDF generation with react-pdf.
Resources
Stockfish.js GitHub, Chess.js npm docs, Claude API docs, react-pdf docs.
MVP Scope
app/page.tsx (PGN paste input + hero), app/report/[id]/page.tsx (coaching report view), app/api/analyze/route.ts (Claude coaching call with FEN + moves), lib/stockfish.ts (WASM worker wrapper), lib/pgn.ts (Chess.js parse and blunder extract), lib/db/schema.ts (analyses, users), components/ChessBoard.tsx (react-chessboard wrapper), components/ReportCard.tsx (blunder explanation card), .env.example
Core User Journey
Paste PGN -> wait 15 seconds for analysis -> read coaching report with diagrams -> hit free limit -> upgrade for $9/month -> analyze every game going forward.
Architecture Pattern
User pastes PGN -> Chess.js parses moves -> Stockfish.js WASM worker evaluates each position in browser -> top 3 blunders extracted by centipawn drop -> FEN and move context sent to Claude API -> narrative coaching text returned -> react-chessboard renders diagram -> report stored in Supabase -> PDF generated with react-pdf on demand.
Data Model
User has many Analyses. Analysis has one PGN, many Blunders, one CoachingReport. Blunder has one FEN, one StockfishEval, one ClaudeExplanation.
Integration Points
Stockfish.js for in-browser chess analysis, Chess.js for PGN parsing, Claude API for coaching narrative, Supabase for report storage and auth, Stripe for billing, react-pdf for PDF export.
V1 Scope Boundaries
V1 excludes: opening repertoire analysis, multi-game trend reports, coach marketplace, mobile app, real-time game analysis, engine vs engine comparisons.
Success Definition
A rated chess player finds PGNCoach via a Reddit post, analyzes a real tournament loss, reads the coaching report, shares it in their club Discord, and upgrades to paid the same day.
Challenges
Stockfish.js WASM analysis on long games can take 10-20 seconds in-browser on older devices — must show a progress indicator or the user thinks the app is broken. Distribution reality: chess communities are extremely vocal but notoriously resistant to paid tools when free alternatives exist on Lichess — the coaching narrative quality must be demonstrably better than Lichess's computer analysis page.
Avoid These Pitfalls
Do not run Stockfish server-side — WASM in-browser eliminates compute cost and makes the economics work at $9/month. Do not promise opening preparation features in V1 — blunder explanation alone is the compelling hook. Reddit chess communities will use the free tier forever if you don't enforce the 2-game limit from launch day.
Security Requirements
Supabase Auth magic link, RLS on all user analyses, Claude API key server-side only, rate limit /api/analyze at 10 req/min per IP, GDPR deletion endpoint for analysis data.
Infrastructure Plan
Vercel for Next.js hosting, Supabase for Postgres and auth, Stockfish WASM served from Vercel CDN as static asset, GitHub Actions for CI, Sentry for errors.
Performance Targets
500 DAU at launch post-Reddit, 5,000 req/day. Claude API response under 4s. Page load under 2s. Stockfish WASM analysis under 20s for 40-move game on modern browser.
Go-Live Checklist
- ☐Security audit complete.
- ☐Stripe payment tested end-to-end.
- ☐Stockfish WASM tested on Chrome, Firefox, Safari.
- ☐Claude coaching quality reviewed on 20 real games.
- ☐Sentry error tracking live.
- ☐Custom domain with SSL active.
- ☐Privacy policy and terms published.
- ☐Free tier limit tested and enforced correctly.
- ☐Reddit and Lichess forum launch posts drafted.
First Run Experience
On first run: a sample PGN from a famous blunder game (Scholar's mate escape gone wrong) is pre-loaded in the input. User can click Analyze and see a full coaching report with diagrams in 15 seconds without signing in. No manual config required: demo analysis uses a server-side Claude call with no auth, free tier limit only starts counting after sign-up.
How to build it, step by step
1. Define Drizzle schema: users, analyses (pgnRaw, status), blunders (analysisId, fen, movePlayed, bestMove, cpDrop), coachingReports (analysisId, markdownContent). 2. Run npx create-next-app pgncoach with TypeScript and Tailwind. 3. Install chess.js and configure PGN parser to extract moves and FEN per ply. 4. Set up Stockfish.js as a Web Worker loaded from public/ folder via WASM. 5. Build blunder extractor that flags moves with centipawn drop over 100. 6. Create /api/analyze POST route that sends top 3 blunders with FEN and context to Claude claude-3-haiku for narrative coaching. 7. Build ChessBoard component using react-chessboard to render position at each blunder. 8. Build ReportCard component displaying Claude explanation per blunder with board diagram. 9. Add Supabase Auth magic link, analysis count gate at 2 per month free, Stripe $9/month unlock. 10. Verify: paste a real PGN, confirm Stockfish identifies blunders, confirm Claude narrative is accurate and readable, confirm PDF exports correctly, confirm free limit blocks at 3rd analysis.
Generated
May 21, 2026
Model
claude-sonnet-4-6
Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.