You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add Expo mobile app with multi-tenant support (#97)
## Summary
Introduces a new Expo-based React Native mobile application
(`apps/mobile`) as a tenant-branded, multi-tenant mobile client. Also
establishes a shared package (`packages/shared`) for logic reuse between
web and mobile.
## Key Changes
- **New mobile app** (`apps/mobile/`)
- Expo SDK 55 with Expo Router for file-based routing
- TypeScript strict mode with matching tsconfig to web
- NativeWind for Tailwind CSS styling in React Native
- Supabase client integration with AsyncStorage for persistent auth
- TanStack Query v5 for data fetching
- React Hook Form + Zod for form validation
- Grouped layouts: `(auth)/` and `(app)/` to mirror web structure
- EAS Build/Submit configuration for iOS and Android deployment
- Environment variables using `EXPO_PUBLIC_` prefix
- **New shared package** (`packages/shared/`)
- Placeholder for extracting shared validation schemas, constants, and
types
- Used by both web and mobile applications
- Strict TypeScript configuration
- **Documentation updates** (`CLAUDE.md`)
- Added mobile stack details (framework, styling, auth, deployment)
- Updated project structure to include mobile and shared packages
- Added mobile-specific commands and conventions
- Clarified that mobile uses client-side Supabase with RLS as security
boundary
## Implementation Details
- Mobile auth persists via AsyncStorage with auto-refresh enabled
- All Supabase calls go through the client SDK directly (no server
components/actions)
- RLS policies enforce security on the database layer
- Shared business logic will be centralized in `@cowork/shared` to avoid
duplication
- Mobile env vars follow Expo conventions (`EXPO_PUBLIC_` prefix)
- Babel configured with NativeWind JSX transform for Tailwind support
https://claude.ai/code/session_015AhxfccaYtwr8yymr9oes6
---------
Co-authored-by: Claude <noreply@anthropic.com>
0 commit comments