CodingIdeas.ai

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.