Comprehensive cross-platform feature verification and synchronization...
Systematic verification that a feature is complete, consistent, and native across all platforms.
Copy this checklist and update as you progress:
Feature: [NAME]
Status: In Progress
Phase 1 - Discovery
- [ ] Web implementation reviewed
- [ ] Mobile implementation reviewed
- [ ] All functionality catalogued
Phase 2 - Native Verification
- [ ] Web Desktop: Proper desktop patterns
- [ ] Web Mobile: Touch-friendly, responsive
- [ ] iOS: Native components (SF Symbols, native sheets, haptics)
- [ ] Android: Native components (Material Icons, native patterns)
Phase 3 - Functionality Parity
- [ ] Feature matrix completed
- [ ] All gaps identified and fixed
Phase 4 - API Consistency
- [ ] Single API endpoint for each operation
- [ ] No local business logic duplication
- [ ] Constants synced (mobile/constants/options.ts β web/src/types/index.ts)
Phase 5 - Sister Functionality Audit
- [ ] Related UI touchpoints identified
- [ ] All related views updated
- [ ] Cross-references working
Goal: Understand EVERYTHING each platform does before making changes. Never lose functionality.
Search for the feature across both codebases:
# Web implementation
rg -l "feature-keyword" web/src/
# Mobile implementation
rg -l "feature-keyword" mobile/
# API routes
rg -l "feature-keyword" web/src/app/api/
For each file found, document:
## [Feature Name] Functionality Inventory
### Operations Found
| Operation | Web | Mobile | API Endpoint |
|-----------|-----|--------|--------------|
| Create X | β | β | POST /api/x |
| Edit X | β | β | PUT /api/x |
| Delete X | β | β | DELETE /api/x|
### Data Displayed
| Data Point | Web | Mobile |
|------------|-----|--------|
| Title | β | β |
| Thumbnail | β | β |
### Missing in Web: [list]
### Missing in Mobile: [list]
CRITICAL: If one platform has functionality the others don't, ADD it to the othersβnever remove it.
Goal: Each platform must feel native, not like a cross-platform wrapper.
h-dvh not h-screenpb-safeexpo-symbols)@gorhom/bottom-sheet)expo-router/unstable-native-tabs)react-native-reanimatedGoal: Identical capabilities across all platforms.
| Capability | Web Desktop | Web Mobile | iOS | Android | Notes |
|---|---|---|---|---|---|
| View list | β | β | β | β | |
| Create new | β | β | β | β | NEEDS FIX |
| Edit | β | β | β | β | |
| Delete | β | β | β | β | NEEDS FIX |
| Filter | β | β | β | β | NEEDS FIX |
For each gap:
Goal: All platforms use the same backend logic.
For each operation in the feature:
Operation: [e.g., "Update profile photo"]
β CORRECT: All platforms call β PUT /api/users/me/photo
β WRONG: Mobile has local logic, Web calls API
Search for business logic that should be server-side:
# Check mobile for embedded logic
rg -A5 "supabase\.(from|rpc)" mobile/
rg "\.update\(|\.insert\(|\.delete\(" mobile/
# These should be API calls, not direct DB operations
Rule: Mobile should ONLY call web/src/app/api/ endpoints via mobile/lib/api.ts.
Compare and sync:
mobile/constants/options.tsweb/src/types/index.tsAny shared constants (dropdown options, enums, validation rules) must be identical.
Goal: Find and update all related UI that touches this feature.
Search for references to the feature's:
# Find all files referencing this data type
rg "EventType|Event\[|events\." --type ts --type tsx
# Find all components that might display this data
rg -l "event" web/src/components/
rg -l "event" mobile/components/
| If you changed... | Also check... |
|---|---|
| Events | Calendar views, notifications, home feed, search results |
| User profiles | Match cards, chat headers, review displays |
| Photos/Gallery | Profile previews, thumbnails, chat image sends |
| Settings/Preferences | Any feature that reads those preferences |
| Notifications | Badge counts, notification lists, push handlers |
For each related view found:
Before marking complete, verify ALL of these:
FINAL CHECKLIST
Functionality
- [ ] All operations work on Web Desktop
- [ ] All operations work on Web Mobile
- [ ] All operations work on iOS
- [ ] All operations work on Android
- [ ] No functionality was lost from any platform
Native Feel
- [ ] Web uses appropriate desktop/mobile patterns
- [ ] iOS uses SF Symbols and native components
- [ ] Android uses Material Icons and native patterns
- [ ] No platform feels like a wrapped web app
API Consistency
- [ ] All platforms call the same API endpoints
- [ ] No business logic in client code
- [ ] Constants are synced
Sister Features
- [ ] All related UI touchpoints identified
- [ ] All related views updated
- [ ] No orphaned references to old implementations
| Type | Path |
|---|---|
| Web pages | web/src/app/ |
| Web components | web/src/components/ |
| Web API routes | web/src/app/api/ |
| Web services | web/src/lib/services/ |
| Mobile screens | mobile/app/ |
| Mobile components | mobile/components/ |
| Mobile API client | mobile/lib/api.ts |
| Mobile constants | mobile/constants/options.ts |
| Web types/constants | web/src/types/index.ts |
After completing verification, provide summary:
## Feature Parity Report: [Feature Name]
### Status: β VERIFIED / β οΈ ISSUES FOUND
### Changes Made
- [List all fixes applied]
### Platform Status
| Platform | Status | Notes |
|----------|--------|-------|
| Web Desktop | β | |
| Web Mobile | β | |
| iOS | β | |
| Android | β | |
### API Verification
- Endpoints used: [list]
- Business logic location: [path]
### Sister Features Updated
- [List any related features that were also updated]
### Remaining Issues (if any)
- [List anything that couldn't be fixed automatically]