Qentrah
Projects
Guides

Features

View as Markdown
  • i18n: Arabic and English via react-i18next; translations in src/locales/
  • RTL/LTR: Layout direction follows app language (Arabic = RTL). Use useIsRTL() or useLayoutDirection() in components
  • Language switch: Stored in AsyncStorage; a native Alert prompts the user to restart the app when direction changes (required on iOS)
  • Auth: Better Auth with Convex; email/password and optional social sign-in. Session-based routing: index redirects to (main) when signed in, (auth) when not; (main) is protected, (auth) is public
  • Navigation: Expo Router with Stack.Protected for private/public screens and RTL-aware slide animations; see .cursor/rules/performance.mdc for patterns
  • Haptics: useHapticFeedback() hook and Button hapticType for tap feedback (e.g. selection on iOS)
  • No toasts: Auth errors shown as inline labels; language restart uses Alert
  • TOON: @toon-format/toon is used for Token-Oriented Object Notation (TOON) encoding/decoding of LLM prompt responses into avatar motion timelines (token-efficient format)

Source captured: 2026-10-11