PWA — Local Directory
On Island
Mobile-first PWA local business directory for St. Thomas, USVI.

The problem
Generic directories (Yelp, Google) aren't tuned to a single island. A cruise visitor in port for the day, a snowbird who lives there half the year, a villa renter for a week, and a year-round local all want different things from the same map — and they care about signals the big platforms ignore: which cruise ships are in port, what the beach conditions actually look like, what's still open after 8pm in the off-season.
The solution
A mobile-first PWA that recognizes who you are — traveller, local, villa owner, or snowbird — and reorders the home screen, category grid, and emergency strip to match. A daily Island Brief bakes cruise-crowd data, weather, and beach conditions into the front page. Business owners self-serve their listings; admins moderate from a parallel portal. Supabase handles auth, storage, realtime, and row-level security as the single source of truth.
Highlights
- Four distinct user types — traveller, local, villa owner, snowbird — each with a personalized home, category order, and emergency strip
- Mobile-first PWA — installs in two taps from the browser, no app-store gate for one-week visitors
- Daily Island Brief — cruise crowds + weather + beach conditions, refreshed on a cron
- Full-text menu search across uploaded PDFs and images — PDF text layer first, Google Vision OCR fallback, indexed in Postgres
- PostGIS-backed Mapbox map — business pins, service-area polygons, admin-curated beaches and emergency stops
- Stripe subscriptions + premium emergency-strip slot bookings with seasonal pricing and a 90-day founding-member trial
- Three auth realms (user / business / admin) with role injected into the JWT via a custom Supabase access-token hook — RLS is the primary permission layer
Stack
Integrations
Need something like this?
I'm taking on a small number of new projects each quarter. Let's talk about what you're building.
Start the conversation