March 2025 Full-Stack Developer

Wedding RSVP System

A private wedding website and guest-management system with personalized RSVP links, short invitation codes, CSV guest import, admin tracking, and a code-gated photo gallery.

Next.js 15ReactTypeScriptClerkSupabasePostgreSQLDrizzle ORMTailwind CSSCloudinary
Keegan and Lexi wedding website logo.

The wedding RSVP system is a private full-stack app I built for my own wedding. Instead of sending guests to a generic form, each invitation gets a short personalized code that opens the correct RSVP page and preloads the invited guests.

The admin side manages invitations, guests, plus-one limits, viewed status, RSVP submission status, and bulk imports from a guest-list CSV. The guest-facing flow keeps the experience simple: open the link, confirm attendance for each guest, add allowed plus ones, and submit.

What it does

  • Generates short invitation codes for personalized RSVP URLs.
  • Imports invitations and guests from CSV into Supabase-backed Postgres tables.
  • Tracks whether invitations were viewed and whether RSVPs were submitted.
  • Supports guest attendance, dietary restrictions, plus ones, and a thank-you flow.
  • Adds a code-gated guest photo upload/gallery flow with rate limiting.

Why it was useful

This was not a portfolio toy problem. It had to work for real guests, handle real invitation data, and give us operational visibility while planning the wedding. The useful parts were the unglamorous ones: import reliability, clear admin filters, short links that were easy to print as QR codes, and safe fallbacks when guests made changes.

Challenges

  • Turning a guest-list spreadsheet into normalized invitations and guest rows without losing plus-one limits.
  • Designing personalized links that were short enough for QR codes but still mapped reliably to the right invitation.
  • Separating public guest access from admin-only management while keeping the RSVP flow low-friction.

What I Learned

  • Small internal tools benefit from the same production thinking as public apps when real people depend on them.
  • Admin visibility matters as much as the guest form when the workflow includes follow-up and event planning.
  • Personalized URLs can remove a lot of friction for non-technical users.