About
About Capuchino
Capuchino helps advanced Spanish learners (past B1) master the long tail of vocabulary that stands between them and C1 — the roughly 10,000 high-frequency words where most classroom curricula run out of road and most apps stop optimizing. It's aimed squarely at learners preparing for the Instituto Cervantes DELE C1 exam, but useful to anyone who has hit the upper-intermediate plateau.
At its core, Capuchino is a personal gap-finder. A short temperature-check assessment estimates where your knowledge starts to fall off across frequency bands. From there, you refine your gap list by hand — “actually I know this,” “actually I don't” — and export a clean deck to the spaced-repetition tool you already use (Anki first; format-agnostic by design). We don't try to replace your SRS; we try to tell you exactly what to put in it.
Capuchino is named after the capuchin monkey (“mono capuchino” in Spanish), found from Central America to northern Argentina.
Data sources
Capuchino's lexicon is ingested via a separate Python pipeline that reads a pinned snapshot of doozan/spanish_data — a compilation drawing on the sources below. Imported data lives in read-only tables (the app physically cannot write to them); our authored content (DELE tags, learner activity) lives separately so license obligations have a clean boundary.
| Source | Used for | License |
|---|---|---|
| doozan/spanish_data | Compilation we ingest from: 10k lemmas + 21k senses + 108k example sentences + 577k forms | CC-BY 4.0 (compilation) |
| English Wiktionary | English glosses, qualifiers, synonyms, gender, etymology (via doozan) | CC-BY-SA 4.0 |
| hermitdave/FrequencyWords | Word-frequency rankings, subtitle-derived (via doozan) | CC-BY-SA 3.0 |
| Tatoeba | Bilingual example sentences, filtered to quality ≥ 5 (via doozan). Per-sentence author attribution shown wherever sentences are displayed. | CC-BY 2.0 FR |
Accessibility
We aim to follow web accessibility best practices (WCAG 2.1 AA) so that Capuchino is usable by as many people as possible — including with screen readers, keyboard-only navigation, and reduced-motion preferences.
Third-party tools
This project is built on open-source software. Below are the main libraries and services we rely on.
Core framework
- ReactMIT
UI framework
- ViteMIT
Build tool & dev server
- TypeScriptApache-2.0
Typed JavaScript
- React RouterMIT
Client-side routing
- TanStack QueryMIT
Server state & data fetching
UI & design
- Tailwind CSSMIT
Utility-first styling
- shadcn/uiMIT
Accessible component primitives
- Radix UIMIT
Headless UI primitives
- LucideISC
Icon set
- SonnerMIT
Toast notifications
Data & forms
- SupabaseApache-2.0
Postgres database, auth & APIs
- ZodMIT
Schema validation
- React Hook FormMIT
Form state management
- i18nextMIT
Internationalization (English & Spanish)
- ResendProprietary API
Transactional email delivery
Testing
- VitestMIT
Unit & smoke tests
- Testing LibraryMIT
React component testing
Data pipeline
- PythonPSF
Lexicon ingest scripts in a separate repo (run outside the app)
- uvMIT/Apache-2.0
Python package & version manager
- supabase-pyMIT
Python client for Supabase (used with the service_role key)
- tqdmMPL-2.0/MIT
Progress bars for long-running ingest jobs
AI
- Claude CodeProprietary
Used as an Obsidian community plugin, in combination with Obsidian, for planning, PRD work and architecture notes