Skip to content

Flutter ⇄ Web feature parity

Tracking the migration of the web app’s full feature set into the Flutter app. Backend (/v1 NestJS) + Supabase migrations are shared and already deployed — this is a client-only effort. Auth (sign in / up / forgot) is kept as-is. New screens use OSM (flutter_map) + liquid-glass (cupertino_native) + Cupertino controls, styled to match the web TripViz look (bg #0b1020, card #121a33, accents indigo/emerald/rose).

AreaStatus
Auth (sign in/up/forgot/splash)✅ keep
Trips list + detail
Trip map (OSM, day deck, animated markers, route, edge markers, media carousel, compare)
Import wizard + review + drafts
AI chat tab
Members + roles + invites (repo + sheet + accept page)✅ partial
Notifications + FCM✅ partial
Discover / itineraries
Design system (tokens, cupertino_native shell, components)

Parity gap (this session’s web features → to build)

Section titled “Parity gap (this session’s web features → to build)”
FeaturePhaseBackend ready
Liquid-glass UI alignment to web palette/markersFP1n/a
Plan a day (AI day + nearby rated places)FP2/places/nearby, day-pinned commit
Plan together — board: suggest/vote/comment/accept/dismissFP3✅ planner endpoints (0027)
Planner realtime + presenceFP4✅ Supabase Realtime
”Worth exploring” discovery markers + categoriesFP4/places/nearby
Reel/screenshot → suggestionsFP4✅ imports pipeline
Collaborators panel (roster + roles + invite link)FP4✅ members/invites
Unplanned section (date-less activities)FP5unscheduled
Planner notifications (suggestion_new/accepted) + clearFP5✅ (0029 cutoff)
In-app GuideFP5n/a
Date-edit duration meaning + Fix pins parityFP5✅ (0028)

Phases (each: build → dart analyze clean → Maestro smoke on sim → commit)

Section titled “Phases (each: build → dart analyze clean → Maestro smoke on sim → commit)”
  • FP0 harness — Maestro + Dart MCP, simulator boot, this audit
  • FP1 liquid-glass UI alignment
  • FP2 Plan a day
  • FP3 Plan together (core board + voting + accept)
  • FP4 realtime + discovery + collaborators + reel→suggest
  • FP5 Unplanned + notifications + Guide + date UX
  • FP6 final gate (Maestro flows + Dart MCP analyze/runtime + walkthrough)
fvm flutter run -d <ios-sim-id> \
--dart-define=SUPABASE_URL=http://127.0.0.1:55321 \
--dart-define=SUPABASE_ANON_KEY=<local-anon> \
--dart-define=API_BASE_URL=http://127.0.0.1:3000/v1

Test account: [email protected]. Maestro flows live in .maestro/.