AI Practice Plan Generator for Music Teachers
Turn recorded music lessons into student recaps, daily practice plans, and parent emails so coaches stop typing 20 minutes after every session.
It is 9pm. The piano teacher finished her last student three hours ago. She is still at the kitchen table writing Monday's C-major scales, Tuesday's measures 5–8 of the recital piece, and Wednesday's chord transition that keeps tripping him up. Twenty-three students. Then the parent emails: progress, encouragement, a gentle nudge about practice. By 11pm she is done. Thursday she does it all again. This is not a time-management failure. It is the job. After every lesson, independent music coaches spend 15–30 minutes typing notes, assembling homework, and sending recaps — extra work multiplied by each student. The admin load is what caps how many students a coach can actually take. They are not limited by teaching hours.
Built for Solo Founders, Non-Technical, Developers.
Suggested stack: Next.js 15 (App Router) on Vercel, Supabase (Postgres + Auth), Whisper (OpenAI or Groq) + Claude Sonnet, Twilio or Resend, Zoom SDK or a recall.ai-style meeting bot, Stripe Billing. Weekend scope: about 8 hours.
The Problem
It is 9pm. The piano teacher finished her last student three hours ago. She is still at the kitchen table writing Monday's C-major scales, Tuesday's measures 5–8 of the recital…
The Solution
Note By Note (LessonRecapAI in the research, same product) listens so teachers do not have to write. Hit record on the phone. Teach the lesson like normal. The AI transcribes the…
Market Research
Online music education is estimated at roughly $3.3B in 2025, growing to about $6.6B by 2030 at a 14.8% CAGR, with live 1:1 instruction around 47.6% of spend (Market.us /…
Competitive Landscape
Otter.ai — Mature ASR, Zoom/Meet/Teams integrations, brand trust. Freemium with per-user monthly plans that fit a teacher budget. Completely pedagogy-blind: it cannot name a…
Business Model
Starter ($20/month) — Transcription + lesson summary, 40 lessons/month, email send, audio discarded after processing
Recommended Tech Stack
Next.js 15 (App Router) on Vercel — Teacher dashboard, review UI for the three outputs, magic-link auth. Mobile-first record screen as a PWA so the App Store is optional for v1.
AI Prompts to Build This
Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.
1. Project Setup
Build the weekend MVP of "Note By Note": record a music lesson and get a student recap, a daily practice plan and a parent email. Stack: Next.js (App Router), TypeScript, Tailwind, Supabase (Postgres, Row Level Security, Auth with email magic link), Whisper through OpenAI for transcription, Claude (Anthropic API) for the extraction and the three outputs. Deploy on Vercel. Tables (Row Level Security on, teachers read and write only their own rows): - teachers(id, user_id, instrument_focus) - students(id, teacher_id, name, instrument, level, parent_email, notes) - lessons(id, teacher_id, student_id, recorded_at, duration_sec, transcript, events jsonb, recap, practice_plan jsonb, parent_email_body, status) - consent_events(id, lesson_id, granted_by, granted_at) - practice_items(id, lesson_id, student_id, day, minutes, instruction, source_span) Do not add an audio_url column to lessons: audio is processed and discarded. Screens: /record, /lessons/[id] (review and edit the three outputs), /students. Env vars (names only): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only), OPENAI_API_KEY, ANTHROPIC_API_KEY. Do not build: billing, plans or lesson limits, SMS, online-lesson meeting bots, the weekly teacher digest, an admin area. Done when: npm run dev starts, you can sign in, and the five tables exist with Row Level Security on.
2. Core Feature
Build the one feature that proves the idea: a recorded lesson becomes three outputs a teacher can send in a minute. 1. Record flow: before recording starts, show a consent sheet with who is being recorded, that the audio is processed and discarded, and a "use dictation instead" fallback. Write a consent_events row before upload. 2. Upload the audio to a short-lived signed URL, transcribe it with Whisper, save the transcript, and delete the audio. 3. Ask Claude for strict JSON { events: [{ type, span, detail }] } where type is technique, repertoire, assignment, tempo, praise or correction. System prompt: "You extract music-lesson pedagogy. Only emit events directly supported by a transcript span. Never invent an assignment the teacher did not give. 'Practice measures 5 to 8 slowly' is an assignment. Praise for tone is praise, not homework." 4. From the events, make three outputs: a student recap (3 to 5 sentences, second person, naming the piece and one win), a practice plan (Monday to Sunday rows, minutes and one instruction a day, totaling the teacher's stated target or 20 minutes), and a parent email (120 to 180 words, warm, no unexplained jargon, one ask). 5. Fetch the student's last 3 sent plans and pass them in: do not repeat last week's exact assignments unless the teacher restated them, and continue unfinished work. 6. Show all three in an editor. Send writes status sent and emails the parent through Resend, with RESEND_API_KEY added to the env vars. Rules: if an assignment event has an empty span, drop it and flag "unverified, add manually" instead of shipping an invented task. Empty state: with no students, show the add-student form. Done when: a 2-minute test lesson gives a recap, a 7-day plan and a parent email, an invented assignment never appears, and Send emails a test parent.3. Landing Page
Build a one-page landing site for Note By Note, a practice-plan generator for private music teachers. Hero: "Teach the lesson. We write the recap." Sub: "Hit record, teach as usual, and get a student recap, a daily practice plan and a parent email." One button: Join the waitlist. Sections: the problem (twenty minutes of typing after every lesson), how it works in four steps (record, extract the pedagogy, three outputs, send and remember), a sample plan and parent email, and an FAQ on recording consent and what happens to the audio. Waitlist: store the email in a waitlist table in Supabase. No other service. Voice: warm and plain, respectful of the teacher's craft. Done when: the page renders on a phone and a submitted email appears in the waitlist table.
4. Branding Package
Use a design or image tool for this one. A coding agent cannot draw a logo. Brand for Note By Note: a wordmark and an icon that suggest a note on a staff and a checkmark. Colors: warm off-white, deep ink and one friendly accent. Type: one readable sans for the interface. Deliverables: wordmark, icon, a weekly practice-plan card style, and one launch graphic. Done when: each deliverable is saved in one folder and the icon reads at 32 px.