Logo Lanfrica

ebanezare-tadele/amharic-app

Domain:

natural language processing

Record type:

softwaretools
Creator:
eba
Host:
# ፊደል — Amharic Fidel A self-contained React app for learning the Amharic script (fidel): all 34 consonant families across 7 vowel orders, vocabulary, phrases, a spaced-repetition review queue, a word builder, a speed round, a letter-tracing pad, and a reader. Originally built as a Claude.ai artifact (a single component running in a sandboxed environment with its own `window.storage` API). This is that same component — logic, curriculum, and copy unchanged apart from one privacy paragraph (see "The one copy change" below) — running as an installable Vite + React PWA. ## Running it locally ```bash npm install npm run dev ``` Then open the printed `localhost` URL. ```bash npm run build # production build to dist/ npm run preview # serve that build locally ``` The app runs fully with zero setup below — nothing here requires an account with anyone. ## Persistence Everything — `xp`, `cards`, streaks, and any letter/word/phrase you record yourself — lives in this device's own `localStorage` by default, via `src/lib/windowStorage.js`, a polyfill for the artifact sandbox's `window.storage.get/set/delete` API. Single-device, no account, nothing sent anywhere else, unless you turn on sync (below). Audio clips you record are capped at ~700KB client-side — fine for a one-second pronunciation clip, but keep that in mind if you ever want longer audio. ## Syncing progress across devices (optional) Off by default. Turned on from the Chart tab ("Sync across devices," near "start over"): tap **create a sync code** on one device, then enter that same code on another to bring your progress and recordings over. From then on, changes on a linked device push automatically — no further action needed on that device. **No account, no email — the code is the only credential.** It's a random 10-character string generated on-device (`generateSyncCode()` in `src/lib/progressSync.js`), and it's genuinely the only way in: the actual security lives in Postgres, not the …

Languages