OuterPractice ← Home
Changelog

What's new.

User-visible changes only. Internal refactors and unreleased work aren't listed here.

v0.5 11 May 2026
  • Pricing redrawn. Free for personal practice, a one-time €149 Teach licence (lifetime — no subscription, no auto-renew), and custom Studio licensing for institutions. The per-tier copy now leads with what each is for ("for musicians who keep at it", "for teachers in the room with students") instead of feature lists.
  • Hero rewritten so a teacher landing fresh sees themselves in the first line: "A second pair of eyes for the body — yours, or your student's." For Teachers section now lays out both modes (between lessons + in-person) instead of only the async loop.
  • Live in-session feedback got more present. Cue thresholds lowered + dwells shortened so cues fire ~2× more often. Three new cue kinds wired up on signals that were already measured but never surfaced: audio rushing, dynamics flattening, sustained head tilt. Per-instrument tuning — drums sees jitter sooner, voice sees jaw sooner, wind sees dynamics-flat sooner.
  • FloatingCue on /session is bigger (18px observation), the amber border now scales with severity, and a small modality glyph (shoulder/head/jaw/sound) sits left of the text so the kind of cue is recognisable before reading.
  • New default for the live-feedback setting on fresh profiles: "Notice + invitation + follow-up". Existing users keep whatever they chose. Settings labels rewritten in plain English instead of "Observational" / "Experimental".
  • 10 more instrument profiles: cello, viola, double-bass, bass guitar, hand percussion, flute, clarinet, trumpet, trombone, harp. Onboarding card grid now covers 16 instruments.
  • New /about page — who builds OuterPractice and the decisions behind it (privacy-first, calm voice, honor-system licensing). Linked from the landing page footer and from /privacy.
  • Stop button after a session no longer leaves you trapped on a dead recording screen if persistence fails. Saves what it can, navigates regardless, surfaces an inline error if the save broke. The post-check page also has a fallback render if the session id can't be loaded.
  • Camera or microphone disconnect mid-session is now visible. A banner appears below the topbar ("Camera disconnected. The visual cues are paused…"). The Stop button gets a soft amber pull. Session keeps running on whatever source is still alive.
  • Backup reminder. A non-blocking card appears at the top of the dashboard when you've recorded ≥10 sessions since your last export, or when it's been 30+ days. Two affordances: export now, or remind me later (snoozes 7 days). Privacy-first means no server backup — this closes the gap.
  • /timeline/[id] handles missing or unreadable sessions cleanly now. Bookmark from another browser, deleted session, transient IndexedDB hiccup — you get an explanation and a working "Back to dashboard" button instead of a blank page.
  • Per-route share previews: each public page has its own og:* meta + sitemap entry, plus a JSON-LD SoftwareApplication block on the landing page. Pasting a link in WhatsApp / LinkedIn / Slack now shows the title, description, and a screenshot.
  • Mobile fixes: touch targets ≥44pt on phones, no more iOS focus-zoom on inputs, iPhone notch / home-indicator safe-area handling on /session.
  • Browsers older than Chrome 113 / Safari 17 / Firefox 129 now get a clear "your browser is too old to verify licence keys" message in /settings before they paste, instead of a misleading "we couldn't verify this key" after.
v0.4 8 May 2026
  • Lesson mode (Studio licence). Add a student once, group every recording for that student under named lessons. Each lesson can hold multiple clips. /lessons shows everything per student; /lessons/[id] shows the clips of a single lesson with aggregate stats and a reflection note you write at the end.
  • Hand the student the whole lesson back as one file: clips, observations, your reflection — all in a single .opr.json bundle. Privacy: your private notes about the student are stripped before export.
  • A teacher reviewing a student's clip now gets quick prompts above the comment field, matched to the kind of moment clicked (jaw tightening, shoulder lift, audio rushing). Saves the blank-page moment when annotating ten events in a row.
  • Comments are editable + removable now, both in the chronological drawer and on the event-detail popover. Only your own comments — the role of the device decides ownership.
  • Onboarding starts with "are you here to practise, or to teach?". Teachers get a shorter flow (no instrument or reference-clip — they observe, they don't play here themselves) and land on the student-picker. Musicians get the existing flow.
  • Returning users hitting /onboarding again (e.g. via the "Record reference clips" link in /settings) skip the role-pick step and go straight to the instrument step.
  • Drop a lesson-bundle file on the dashboard import zone — students, lessons, and all clips are restored. Import is idempotent: dropping the same file twice doesn't duplicate anything.
  • Dashboard now previews the latest lesson reflection under any session that belongs to a lesson — pick up a student again next week without clicking through.
  • License automation: Stripe webhook → Cloudflare Worker → Resend email. Buying a Practice or Teach licence now mails the key automatically within seconds instead of waiting on a manual step.
v0.3 7 May 2026
  • Reference-clip recording in onboarding now uses the real camera. The visibility and frame-rate numbers reflect actual MediaPipe output, not a simulation.
  • Tense reference clip is captured and stored alongside the relaxed one as a personal "ceiling" — the live ambient meters now scale to your own range when both clips are recorded.
  • Privacy policy added at /privacy. Lists exactly what is processed locally and what third parties are touched.
  • Brand-mark icon for browser tabs and PWA install (the three concentric rings and amber dot).
  • Studio-tier CTAs link to Stripe Checkout when configured. Until then they fall back to a "let me know" email.
  • Direct URL loads of routes like /timeline/abc or /v21/passages now work from a fresh tab instead of returning 404.
v0.2 6 May 2026
  • Renamed CBM → OuterPractice across all user-visible surfaces.
  • New marketing landing page at /. The dashboard moved to /app.
  • Studio-instrument design system: deep ink ground, warm amber spotlight, Spectral / Inter Tight / JetBrains Mono.
  • Deeper onboarding flow: instrument-family picker (drums, piano, violin, guitar, saxophone, voice) plus an optional reference-clip step.
  • Tablet and phone responsive breakpoints across the whole app.
  • v2.1 mocks added at /v21: passage-aware tracking and personal tension fingerprint. Both with hardcoded preview data — feature implementation comes later.
v0.1 4 May 2026
  • Initial v1 musician flow: dashboard → live session → hybrid timeline.
  • Pre/post body-state sliders and stage mode for performance recordings.
  • Teacher comments and import/export of session JSON for the async lesson loop.
  • IndexedDB persistence — no cloud sync, nothing leaves the device.
← Back to OuterPractice