Web appActive

Mochi

A cozy, mobile-first language learning and progress tracking app for groups with offline-first study and reliable multi-device sync.

Overview

Most language apps are built for scale or monetization, not for a small, focused routine shared by two people. I needed a durable, offline-capable system that stays fast, consistent across devices, and supports shared daily goals without sync conflicts.

Mochi is a local-first web app where IndexedDB is the source of truth and Supabase mirrors changes using a last-write-wins strategy. Study scheduling runs via an FSRS engine in a dedicated worker, while shared goals, streaks, and quotas keep two users aligned without sacrificing offline reliability.

Key features

  • Offline-first study with Dexie as the primary data store
  • FSRS scheduling running in a Web Worker for deterministic reviews
  • Two-user shared goals with instant streak updates and freezes
  • Daily learn/review quotas with auto-completion when no cards are due
  • Remote bootstrap from CSV and safe incremental sync to Supabase
  • Installable PWA with mobile-first navigation
  • Global debug HUD for sync, counts, and streak diagnostics