Learn languages passively. Build a list of term/definition pairs and listen to them as spoken audio — the term in the source language, the definition in the target language — while you go about your day.
- Expo SDK 57 / React Native 0.86 / React 19, New Architecture
- TypeScript (strict)
- expo-router for navigation
- expo-speech for text-to-speech
- Zustand 5 persisted to AsyncStorage
- Icons via
@expo/vector-icons
bun install
bun start # Metro on port 8095 (8081/8090 are used by other apps)SDK 57 has no Expo Go — use a development build (expo-dev-client is
installed). Build locally with npx expo run:android / run:ios, or in the
cloud with npx eas-cli build -p android --profile development (profiles live
in eas.json).
Checks:
bun run lint # expo lint (ESLint + prettier)
bun run typecheck # tsc --noEmit
bun run test # jest (jest-expo preset)
bun run format # prettier --write .src/app/— expo-router routessrc/components/— UI componentssrc/state/— Zustand store (store.ts), types, testssrc/utils/— small helpersdocs/DEVELOPMENT_PLAN.md— the roadmap to v1.0; source of truth for what's next