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.
// problem
Business Problem
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
Constraints
- 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
Architecture
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
Scalability Strategy
- In-browser site editor (ClientAdmin panel) lets the couple update all content live — no developer needed after handoff
- localStorage content persistence with deepMerge for zero-config content fallback
- Rate-limited RSVP endpoint to handle bulk traffic without Supabase overload
- Supabase Realtime and Storage ready for media expansions post-event
Security Decisions
- Supabase magic-link OTP auth — no passwords stored; guests verified against approved list
- Row Level Security on all Supabase tables — guest uploads scoped per authenticated user
- HTML sanitisation with DOMPurify on all admin-editable content fields
- RSVP endpoint rate limiting with structured error logging via JSON stdout
Target Outcomes
- Delivered a fully bespoke, brandable wedding site — zero generic platform constraints
- Couple can edit all copy, colours, and sections live via the admin panel without a developer
- RSVP management with duplicate prevention and confirmation flow built in
- Private guest photo portal with Supabase Storage and magic-link authentication