Mark CXXXII
The Streak Warning
Shipped April 26, 2026
What it is
Loss-aversion banner on /dashboard that surfaces ONLY when a streak is at risk: current_streak >= 3 AND last_practice_date == yesterday-in-user-tz AND no take yet today. Fetches existing /api/streak endpoint (already serves currentStreak + longestStreak + lastPracticeDate + today + timezone via lib/stark.ts). Self-dismissible per session (we WANT the next pageview to remind again). Direct execution of the 2026-04-26 deep-research finding that loss-aversion notification copy outperforms generic reminders by ~3x (Duolingo's largest 2018-2020 engineering investment). Layers on top of the existing Mark VI.5 streak system (user_streaks table + streak_freeze_tokens + per-user-tz day bucketing) without duplicating any of it.
Related — same category
First Judge audition: upload a take, get a score. The product hypothesis.
/dashboard with practice streak, recent takes, plan summary.
Practice Forge — guided log + reflection prompts. The retention hook.
Audition Simulator with timed takes + judge panel persona.
See it in the product.
Every Mark exists because string players asked for it. Free demo, no card.