Building DominGo
A tourism platform for the Dominican Republic — experiences, attractions, and trip planning.
I built DominGo, a tourism platform for the Dominican Republic. It connects travelers with bookable experiences, surfaces tourist attractions across the country, and lets anyone plan and share multi-day trips.
Experiences (for travelers) — App Store · Google Play
Partners (for providers and hosts) — App Store · Google Play
What It Does
Experience Marketplace — Bookable tours and activities across all 32 provinces, with itineraries, pricing, availability, and provider profiles. Hosts run their business through the Partners app — listings, calendar, bookings, payouts.
Tourist Attractions Layer — A map-first directory of points of interest seeded from Google Places and classified into the platform's category taxonomy (nature, gastronomy, culture, nightlife, eco-tourism, etc.) by an LLM pipeline. Detail sheets carry photo carousels, ratings, hours, "directions" deep-links, and nearby experiences.
Trip Planner — A multi-day itinerary builder where travelers add attractions, bookable experiences, or custom map pins to each day. Trips can be private, unlisted (share via link), or public (discoverable on the map). Sharing reuses the same code-table infrastructure as experiences and bookings, so a single short link resolves to whatever you sent.
Map-based Discovery — Bounding-box and destination-scoped queries surface trips, experiences, and attractions in a unified flutter_map view with marker clustering. PostGIS does the spatial work server-side; the apps just paint pins.
Multi-language — All catalog content (experiences, categories, itineraries) carries translations; the API negotiates locale per request and returns content already localized so the apps don't have to.
Why Two Apps
Travelers and providers have different jobs, different home screens, and different KPIs. Forcing them through one app would have meant feature-flagging half the surface for half the users. Splitting them lets each app stay focused — discovery and booking on the traveler side, listings and operations on the provider side — while sharing the same backend, identity, and payments.
How It Started
DominGo started as the project I took to the first CREE Banreservas Hackathon, where it won first place out of ~250 teams. That was the proof-of-concept; the apps and the production platform came after.

