--- title: Carli Daily emoji: 🥘 colorFrom: red colorTo: green sdk: docker app_port: 7860 pinned: false short_description: Español de cada día — six weeks of A1 Spanish, Bilbao style --- # 🇪🇸 Carli Daily — español de cada día Six weeks of daily beginner (A1) Spanish practice for Carli, who has just moved to Bilbao. 42 days (10 August → 20 September), each with 10 vocabulary words, 10 verb-conjugation drills and 10 sentence translations — about 15 minutes a day. The design borrows the *ikurriña* (Basque flag): red field, green saltire, white cross, with the gold of the Spanish flag for the buttons. ## How it works - **Password gate** — the app asks for a secret password (`APP_PASSWORD` Space secret). - **Exercise data** — pulled at runtime from the private Storage Bucket `jeffboudier/carli-daily-data` using the `HF_TOKEN` Space secret. - **Text-to-speech** — Spanish audio generated server-side with [facebook/mms-tts-spa](https://huggingface.co/facebook/mms-tts-spa) (VITS, 36M params — real-time on the free CPU tier, cached per phrase), with the browser's native `speechSynthesis` as fallback. - **Progress** — stored server-side in the data bucket (`progress.json`), so it survives new phones and browsers; localStorage is only a cache. ## Curriculum | Week | Focus | | --- | --- | | 1 | ser, estar, tener, and the three regular present-tense families | | 2 | ir, the near future, gustar, querer/poder, the weather | | 3 | reflexive verbs, saber/conocer, irregular *yo* forms, venir/decir | | 4 | verbs like gustar, tener que, estar + -ndo, tú commands, the perfect | | 5 | the simple past — regular, then fui / tuve / estuve / hice / vi / di | | 6 | past vs perfect, near future, and a grand review of everything | Themes follow real life in Bilbao: the flat, the neighbourhood, the boys' school, pintxo bars, the market, the metro, paperwork at the town hall, Aste Nagusia, Basque culture. ## Space secrets | Secret | Purpose | | --- | --- | | `APP_PASSWORD` | Login password for the app | | `HF_TOKEN` | Token with read/write access to the private data bucket | | `DATA_BUCKET` | (optional) bucket id, defaults to `jeffboudier/carli-daily-data` |