About this project

Jolito is an open-source flashcard app aimed at learners of spoken Mexican Spanish. It pairs a spaced-repetition review loop with audio immersion and a keyboard-driven practice flow, and it can run as an installable, offline-capable web app or as a native iOS package. Highlights described in the README: - Keyboard-first reviewing: Enter to reveal, keys 1-4 to grade, Space to play audio, with autofocused inputs so hands stay on the keyboard. - Ear-first audio: spoken Mexican Spanish audio attached to both prompts and answers. - Active typed recall: learners type answers rather than only recognizing them; an instant visual diff highlights spelling differences, while grading remains self-assessed. - Dual-card workbench: linked Spanish-English reciprocal cards are created together with side-by-side previews and batch authoring. - Offline lexicon assistant: bundled Mexican Spanish dictionary for translations, lemmas, and verb conjugation hints. - Duplicate detection across card creation, deck management, and editing. - Anki import: existing decks can be brought in via .apkg packages or text exports, with learning history and review schedules preserved. - Native iOS build via Capacitor with haptic feedback for reveals and grading. - Offline-first storage with local persistence and service-worker caching; a PWA install option. - Personal decks with passwordless email sign-in and multi-device sync backed by Supabase. The project is positioned between two extremes: general-purpose spaced-repetition tools that require manual card authoring (audio clipping, images, templates), and gamified learning apps with fixed curricula. Jolito's stated goal is zero-friction card creation with learner control over which real-world phrases are studied. Running locally requires Node.js >= 24 and npm. After cloning, `npm ci` installs dependencies and `npm run dev` starts a dev server at http://localhost:5173. To check the installable production build, `npm run build && npm run preview` serves it at http://localhost:4173; loading once while online allows testing offline reload behavior. Remote development is documented for SSH with a forwarded port, since Mosh alone cannot carry the TCP port. Further documentation in the repository covers product vision, design principles, roadmap, an architecture description referencing a hexagonal domain structure with local-first storage, a quality guide describing the test pyramid, accessibility invariants and CI contracts, and a development guide for Supabase sync configuration and Cloudflare Workers deployment. The project is licensed under Apache License 2.0.