Inspiration
When we got engaged, I went looking for the app that would replace the old wedding planning books. I assumed there had to be one platform where you plan the wedding in modules (guests, budget, floor plan, music, timeline) and each piece goes live to the vendors who need it. It didn't exist. What was out there were separate tools that didn't talk to each other, and almost none of them helped couples planning the wedding themselves, even though most weddings never hire a planner.
The more I researched, the harder it was to believe how far behind the wedding industry is on technology: couples, venues and vendors all retyping the same details into spreadsheets, PDFs and email threads. So I set out to build the platform every side of a wedding has wanted for years. I had nearly the whole app envisioned before writing any code. I researched the industry with Gemini and built the platform myself for the first two months, then in July brought in Antigravity and Claude to help me finish it in time for Shipaton.
What it does
For the couple (The Veil on iOS and Android):
- Guest roster with RSVPs, meals and dietary needs, and a final list that locks and releases what vendors need to see.
- A to-scale floor planner: real rooms in feet, tables and chairs, drag-to-seat guests, and the venue's own room drawn in.
- Budget, checklist and timeline that fill in from the wedding's date and size.
- Music by section (prelude, processional, first dance...) with AI curation, guest song requests and a Do Not Play list the DJ sees.
- Co-planning: the partner is a full co-host, and a day-of coordinator, planner or family member can be given exactly the parts they need.
- Guests get a wedding passport: their table, the schedule, the gallery and the day's updates.
- Discover and messages to find vendors, ask for quotes and keep every conversation with the wedding.
For vendors and venues (The Veil Vendors on iOS and Android, and the web portal):
- Leads that arrive with the wedding attached. An inquiry from a couple already carries their date, guest count, budget and style, and it lands as a notification. Reply in a tap, schedule the reply for the morning, or let an AI draft it from the vendor's own packages.
- Date holds for seven days, with a second and third hold waiting in line, and a calendar of tours, tastings, holds and booked days that blocks itself.
- Quotes, contracts and invoices in the same thread. Couples pay the vendor inside The Veil through Stripe, by card or bank transfer; checks and cash are recorded in one tap. Payment schedules release on their own.
- The couple's plan, live. The venue draws its real rooms to scale; the couple seats guests in that room; the florist, caterer and DJ see the final count, the dietary list, the floor plan and the music without an email chain.
- Run the day. The day sheet has everyone's call times. On the day, the venue or planner starts each moment, pushes the schedule back when speeches run long, checks vendors and guests in, and sends one update that reaches the couple, every vendor and every guest's phone.
- Teams: Studio venues share leads across people with their own logins and roles, including day-of staff who see only the events.
- Community: vendors post their real weddings to Discover, where couples find them.
When the couple moves their date, the venue's calendar, every vendor's lead, the run sheet and each vendor's notifications move with it. That is the product in one sentence: change it once, everyone sees it.
How we built it
- App: React Native with Expo SDK 54, one codebase for iOS, Android and the web app, with over-the-air updates pinned to native fingerprints so hotfixes never reach a build that cannot run them.
- Backend: Supabase (Postgres with row-level security on every table, 400+ migrations, edge functions in Deno). Every write that matters is a checked Postgres function, not client code.
- Payments: RevenueCat for The Veil Plus in the app (monthly, annual, and a one-payment wedding pass that lasts until the wedding date), and Stripe Connect on the web for vendor plans and for couples paying vendors, including bank (ACH) payments with the fee capped.
- AI: music curation and reply drafting run through a server proxy, so no model key ships in the app.
- Web: Next.js on Vercel for the site and the vendor portal, which the vendor app also opens in place, signed in.
Challenges we ran into
- Apple rejected an early build because Sign in with Apple failed during review. The auth logs showed the request never arrived: a pooled connection had gone stale. We added a narrow retry for replay-safe requests and it passed.
- The wedding pass is a non-renewing subscription whose length depends on the wedding date, so it has no fixed entitlement. RevenueCat grants the purchase and our server writes how long Plus lasts.
- Keeping one wedding consistent across a couple, their partner, guests and several vendors, each with different permissions, meant designing access in the database first and the screens second.
What we learned
Ship early and keep shipping. We launched on the App Store and Google Play on September 18, and running every flow on the live apps ourselves, as the couple, the guest and the venue, found the rough edges faster than any test plan. Most of the work since has been fixing what we found and making the vendor side strong enough that venues bring their couples in.
What's next
The Veil Vendors on the App Store (it is already live on Google Play), venue teams with shared seats, and taking The Veil to wedding venues and vendor shows across Pennsylvania, starting this week.
Built With
- deno
- expo.io
- javascript
- next.js
- openai
- postgresql
- react-native
- revenuecat
- stripe
- supabase
- typescript
- vercel

