WedDash: a multi-region SaaS platform for wedding venues
Wedding venues manage couples, suppliers, dates, quotes and payments with spreadsheets and WhatsApp. WedDash brings it all together in one platform, built to run in four countries and five languages. I designed and built it on my own, end to end.
- My role
- Product, design and full development
- Company
- Crovia LTD
- Stack
- React 19, React Native, FastAPI, PostGIS, Google Cloud
- Status
- In development

- 4regions, each with its own domain, language, currency and Stripe account
- 5languages: English, Spanish, Catalan, German and Croatian
- 6applications: four role-based web apps, a landing page and a mobile app
- 1,000+automated backend and end-to-end tests
The challenge
One system for four types of user (the platform, the venues, their suppliers and the couples), with data isolated per customer, a complete flow from the first enquiry to the final payment, and ready to run as a franchise in several countries, each with its own brand, language and currency.
What I built
- Four role-based web apps (venue, suppliers, admin and couples) in React 19 and TypeScript, a static landing page in Next.js and a React Native mobile app for couples.
- A Python backend with FastAPI and PostgreSQL with PostGIS, with role permissions enforced both on the server and in each app.
- A complete enquiry, quote and booking funnel, with Stripe Connect payment links and automatic commission settlement between supplier and venue.
- Season calendar, venue analytics, messaging with couples and a code-based access portal, with no sign-up or password.
- Integrations with Stripe Connect, MailerSend, Calendly and OpenStreetMap, and contract storage in Google Cloud Storage.
- Infrastructure on Google Cloud with Terraform, deployed per region and environment with GitHub Actions.
The platform





Mobile app for couples: they sign in with the code the venue generates and find suppliers, messages and pending payments in one place.
Technical decisions
Isolation enforced by the ORM
Every database query is filtered by region automatically: if an endpoint forgets to filter, data from another region still never gets out.
Suppliers by service radius
With PostGIS, each supplier declares its service area and appears at every venue inside it, without duplicating profiles across regions.
Payments tied to the region
Each region charges through its own Stripe account, resolved from the secret manager; if the configuration is missing, the system refuses to charge.
Next step: WedDash inside Claude
In design, not available yetI'm designing an MCP server that connects each couple's Claude to their file at the venue. WedDash doesn't build the planner: it provides the data nobody else has, and Claude builds each couple their own planning tool, from a seating plan to a budget board, just the way they want it.
What's booked
Suppliers, services and actual payments for each wedding.
The venue's rules
Timings, capacity, and what the venue does and doesn't allow.
A direct line
Messages with the venue and suppliers from within the conversation.
Prompt library
Recipes that turn that data into useful tools for the couple.