Closer/project-requirements.md

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.