React · Vite · Supabase

·

2026

Wedding RSVP

Wedding RSVP

A mobile-first invitation site with RSVP, a shared photo gallery, and day-of details.

The idea

Kjetil and I wanted somewhere to keep the details — date, directions, dress code — that didn’t look like every other template wedding site. I designed it in Figma first, then built it as a mobile-first invitation you open on your phone.

How it’s built

It’s a Vite, React and TypeScript app with client-side routing. The design is ported one-to-one from the Figma file at a fixed 402px mobile frame, so every element lands on its exact coordinates instead of fighting a fluid grid.

RSVPs go through a small store interface rather than talking to a backend directly. In production it’s backed by Supabase; with no environment variables set it falls back to localStorage. That meant I could build the entire RSVP flow before any backend existed, and swapping the two never touched a single page component.

What’s next

The photo gallery is the unfinished part. Uploads currently preview locally in component state, so they aren’t shared between guests yet. Making that real needs proper storage, mirroring the same pattern the RSVP store already uses.