Lumo is a calm, neurodivergent-first personal operating system built with Expo and React Native.
npm ci
npm startThe project uses Expo Router. Route files live in app/; feature modules, shared components, services, state, and design tokens live in src/.
Run the complete Phase 1 validation suite before committing:
npm run validateEach command can also be run independently:
npm run typecheck
npm test
npm run lint
npm run doctor
npm run export:webexport:web creates a disposable static web bundle in dist/, which is ignored by Git. Native device/simulator checks still need to be performed in their respective environments.
npm start
npm run android
npm run ios
npm run webUse a development build for native modules that Expo Go does not support. Do not add environment files containing secrets to source control.
In Supabase Authentication → URL Configuration, add this redirect URL exactly:
lumomobile://auth/callback
Lumo uses it for email confirmation and password recovery. Test it from an installed development build, not Expo Go:
npm run ios # or: npm run android
npm start -- --dev-clientWith the app closed and then open, confirm that a signup email opens the Account screen and that a password-recovery email opens Choose a new password. An expired or reused recovery link must stay on the callback error state; reopening the app during recovery requires opening a fresh link.