Spoken practice, scoring, and review in one platform.

Record against a reference track, review submissions fast, and keep the workflow live across manual, CPU, or GPU deployments.

Student recorderREC 00:42 / 01:30
Take 1Take 2Take 3 · selectedonly the selected take uploads
English & French scoringPronunciation confidenceFluency · WPM · CEFRTeacher gradebookClassroom orchestrationAppend-only grading historyTenant isolation (RLS)Chunked, resumable uploadsManual · CPU · GPU tiers
🎙️

Built for school constraints, not demo-day assumptions

The recorder, review workflow, and deployment tiers were shaped around what a school can actually run, not around a requirement that every deployment start with a live GPU stack.

Multiple takes, master-track practice, chunked upload, and a browser path that was chosen after the WaveSurfer spike failed on iPhone.

Manual-tier schools still get a usable submission and review pipeline instead of an outage disguised as a product limitation.

RLS-enforced school isolation, canonical storage paths, and append-only grading history are core to the platform, not hidden implementation details.

master track ↔ student takedrift 0.0ms
Submission receivedpending
AI service unreachable→ pending_review
Teacher grades manuallygraded

a missing AI service is a Tuesday, not a 500

School A
auth.jwt() ↔ school_id
School B
auth.jwt() ↔ school_id

Deployment tiers

Start with the tier your school can actually support

Manual review, CPU-assisted scoring, and GPU-accelerated grading all preserve the same product shape. The school chooses the infrastructure threshold, not the other way around.

Manual

Teacher-ready fallback

Use the recorder, upload pipeline, and grade review flow before provisioning AI infrastructure.

CPU-assisted

Low-cost automation

Add transcription and baseline scoring for smaller classrooms where throughput is modest and hardware budgets are tight.

GPU-accelerated

Full inference path

Run the complete pronunciation and fluency stack with the worker queue constrained to safe GPU concurrency.

Every classroom calls a different tier home. The product stays the same.