All work
Web appActiveFor A two-person study routine

Mochi

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

Conflict-free multi-device sync

Mochi
The problem

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.

What I built

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.

  • 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
The result
  • Offline-first study that never loses progress
  • Shared goals and streaks stay in sync across devices

Your project

Let’s build something that works for you

Get in touch to share your goals and let's scope your project.

Have a project in mind?

Tell me about it