Skip to content
Back to work

Case study

Aaron & Princess — Wedding Site

Custom single-page wedding experience with RSVP management, guest photo uploads, magic-link auth, and an in-browser site editor for the couple.

  • Astro 6
  • React 19
  • TypeScript
  • Supabase
  • Supabase Auth
  • Supabase Storage
  • Paystack
  • Vercel

The problem

What needed solving

Off-the-shelf wedding platforms are generic, heavily branded, and offer no real customisation. The client needed a bespoke site the couple could edit themselves, with guest RSVP tracking, a private photo upload portal, and livestream support — all in one place.

Constraints

What the build had to respect

  • Couple must be able to edit all site copy and content without touching code
  • RSVP system needs rate limiting and duplicate prevention to handle bursts
  • Guest photo uploads must be private and only accessible after magic-link auth

Architecture

How it fits together

frontend

Astro 6 (prerendered shell) with React 19 island — sections: hero, story, details, RSVP, gallery, registry, livestream, guest upload portal

backend

Astro Node SSR API routes for RSVP upserts, OTP magic-link auth, and media management; Supabase Storage for guest photos

database

Supabase PostgreSQL with RLS — rsvps table and guest_media; Supabase Auth for magic-link guest sessions

deployment

Vercel with Supabase backend; Astro Node standalone adapter