Superyacht crew services app: worldwide map, filters by department, provider database

Working prototype of milestone 1 for project #1660172. Tap through the phone: sign in with your department, open the map, filter services, search near a port, save providers, add a provider to the database. Providers, names and ratings are illustrative.

9:415G ●●● 92%

Crew Compass

Prototype

Find trusted services anywhere your yacht goes. Pick your department: the map opens with the filters you use most.

New here? Create account (same form, role is saved to the profile)

Map

Interior

Near a port

Interior

Saved

Interior

My profile

NameChief stewardessRoleInteriorYachtM/Y AuroraHome portAntibes, FranceSaved0 providersRequests0 sent

My requests

No requests yet. Open a provider and tap Request.

Contribute to the database

Every crew member can add a provider; an admin approves it before it goes public. That is how the database grows beyond the seed list.

Add a provider

What you are looking at

This is the first milestone from the bid: a working map prototype with a provider database and filters. It runs in the browser so you can click it today; the real app is built in Flutter for iOS and Android from the same screens.

  • Sign in by department. Captain, Interior, Exterior, Engineering. The role sets the default filters and is stored in the profile.
  • Worldwide map. Providers from a database, colour-coded by service, with search and filter chips. Tap a marker to open the profile.
  • Near a port. Pick a port and a radius: the list is sorted by real distance. Try "Engine service near Split" and "Florist near Antibes".
  • Provider profile. Rating, hours, languages, services, Save and Request.
  • Database grows from the crew. "Add a provider" puts a new pin on the map (in production: after admin approval).

Map tiles: OpenStreetMap. In the published app the map is Google Maps or Mapbox SDK with offline caching for the saved list.

Data model

TableKey fieldsUsed for
usersid, email, name, role (captain / interior / exterior / engineering), yacht, home_portsign-in, default filters, who added or reviewed what
providersid, name, category_id, lat, lng, city, country, rating, hours, languages[], phone, messenger, website, status (pending / approved), added_bypins on the map, near-port search (PostGIS geography index)
categoriesid, name, department (one or many), icon, colourfilter chips, colours, role defaults
servicesprovider_id, title, price_notewhat exactly a provider does (engine brands, flower delivery to the berth, 24h laundry)
reviewsprovider_id, user_id, stars, text, yacht_sizerating; crew trusts crew
requestsuser_id, provider_id, message, status, created_at"Request" button, history in the profile, push on reply
saveduser_id, provider_idSaved tab, offline cache

Mobile

  • Flutter: one codebase for iOS and Android, native look on both
  • Google Maps or Mapbox SDK, marker clustering at world zoom
  • Offline cache of the saved list and last map area
  • Push notifications on request replies

Backend

  • Supabase: Postgres + PostGIS for "within 150 km of this port" queries
  • Auth with e-mail, Apple and Google sign-in
  • Row-level security: crew sees approved providers, admins see pending
  • Storage for provider photos

Admin and data

  • Web admin: approve providers, edit categories, see requests
  • CSV import of the first provider lists (per port, per category)
  • Analytics: searches by port, categories in demand, empty results to fill next

M1 · days 1–10

Map prototype with the database and filters, exactly this scope in Flutter on a test build (TestFlight / internal track) for your review. Seed providers for the regions you name first.

review point

M2 · days 11–20

Accounts and roles, provider profiles, Save and Request, "Add a provider" with admin approval, web admin, push notifications.

review point

M3 · days 21–28

Polish, store assets, publishing to App Store and Google Play. From your side: Apple Developer and Google Play Console accounts. 2 revision rounds included, 14 days of fixes after release.

release

What I need from you to start

  • The first regions to cover (Mediterranean: Croatia, France, Italy, Spain; Florida and the Caribbean next?)
  • Any provider lists you already have (spreadsheet is fine)
  • App name and logo, or I propose three options