2.8 KiB
2.8 KiB
Project Requirements — Relationship App
These requirements apply to all agents working on the Couples Connection app.
Project Philosophy
- Feel private, warm, calm, intentional, and human
- Prioritize emotional connection over productivity
- Provide smooth, low-friction interactions
- Avoid social media patterns, notification spam, and addiction mechanics
- Maintain fast perceived performance
- 5 meaningful minutes > turning relationships into homework
Technology Stack
- Framework: React Native + Expo
- Language: TypeScript
- Backend: Supabase (Auth, Database, Realtime, Storage)
- Media Storage: Cloudflare R2
- Push Notifications: Expo Push Notifications
- Styling: NativeWind (Tailwind CSS for React Native)
- UI Components: shadcn/ui-style primitives adapted for mobile
- NOT Next.js. NOT a web app. This is a mobile app built with React Native + Expo.
Frontend Standards
- React Native with Expo (cross-platform: iOS + Android)
- NativeWind for styling (Tailwind CSS syntax for native)
- shadcn/ui-style component primitives adapted for mobile
- Responsive to phone form factors only (no desktop layout concerns)
- Smooth animations and transitions (haptics where appropriate)
- Loading states, error states, accessible interfaces
- Warm, intimate, calm design language
Backend Standards
- Supabase for all backend services (auth, database, realtime, storage)
- Row Level Security (RLS) on all tables — strict couple access isolation
- Validate all input on both client and server side
- Supabase Edge Functions for custom logic where needed
- Structured error handling, no silent failures
Database Standards
- PostgreSQL via Supabase
- Row Level Security (RLS) enforced on all tables
- Couples isolation: users can only access their own couple's data
- Schema migrations via Supabase dashboard or CLI
Auth Standards
- Supabase Auth with email magic links (initial MVP)
- Optional Google/Apple login later
- No traditional passwords
- No phone auth initially
Security & Privacy
- This app handles intimate personal data — security and privacy are paramount
- Supabase Row Level Security on all tables
- Private storage buckets with signed URLs
- Strict couple access isolation (no cross-couple data leaks)
- Encrypted transport (HTTPS/WSS)
- No tracking, no surveillance features
- Users must trust the app emotionally and privately
Code Quality
- Readable, maintainable, no overengineering
- Remove dead code, consistent formatting
- Document non-obvious logic
- Prefer clarity over cleverness
Requirement Change Policy
Requirements may NOT be modified without explicit approval from _null.
All proposed changes must include: rationale, technical impact, security implications, affected systems, rollback considerations.