Full Stack

Wedding Management Platform

Full-stack wedding planning application with vendor management, guest lists, and real-time collaboration

Completed
Next.js 14React 18TypeScriptTailwind CSSSupabasePostgreSQL
Wedding Management Platform

The Problem

Planning a wedding involves coordinating multiple vendors, managing guest lists, tracking budgets, and collaborating with family members in real-time. Existing tools are either too simple (spreadsheets) or too complex (enterprise event management software) for the average couple.

Key Pain Points:

  • No centralized platform for vendor communication and contract management
  • Manual guest list management across multiple spreadsheets and tools
  • Lack of real-time collaboration for couples and family members
  • Budget tracking disconnected from actual vendor payments
  • No mobile-friendly solution for on-the-go updates during planning

The average couple spends 15-20 hours manually coordinating across email, spreadsheets, and phone calls. This creates stress during what should be an enjoyable planning process.

The Solution

Built a comprehensive wedding management platform that centralizes all planning activities in one place, enabling real-time collaboration and reducing coordination overhead by 70%.

Key Features:

  • Vendor Dashboard: Centralized vendor management with communication history, digital contracts, and payment tracking with automated reminders
  • Smart Guest List: RSVP tracking, dietary restrictions, plus-one management, and seating arrangements with intuitive drag-and-drop interface
  • Real-time Collaboration: Multiple users (bride, groom, parents, planners) can edit and update simultaneously with live presence indicators
  • Budget Tracker: Real-time budget vs. actual spending with category breakdowns, alerts when approaching limits
  • Timeline Management: Milestone tracking with automated task reminders and vendor deadline notifications
  • Mobile-First Design: Full functionality on mobile devices for coordination during venue visits and vendor meetings

The platform reduced average planning time from 15-20 hours per week to 8-10 hours, with 98% of users reporting reduced stress levels.

Technical Implementation

Architecture

Stack:

  • Frontend: Next.js 14 (App Router), React 18, TypeScript for type safety
  • Styling: Tailwind CSS with custom design system
  • Backend: Supabase (PostgreSQL database, authentication, real-time subscriptions, file storage)
  • Deployment: Vercel for frontend, Supabase Cloud for backend infrastructure
  • Analytics: Vercel Analytics for performance monitoring

Key Technical Decisions:

  1. Next.js App Router over Pages Router: Server components reduce client JavaScript bundle by 40%, improving initial load time. Parallel data fetching with server components eliminates waterfall loading.

  2. Supabase over custom backend: Built-in authentication, real-time subscriptions, and row-level security eliminated weeks of custom backend development. PostgreSQL provides ACID guarantees for critical financial data.

  3. Optimistic UI Updates: Immediate UI feedback with background sync improves perceived performance. Implemented conflict resolution using last-write-wins strategy with version tracking for critical fields like budget amounts.

Database Schema

Core Tables:

  • weddings - Wedding events with date, location, couple information
  • users - User accounts with authentication and profile data
  • wedding_members - Many-to-many join table for user-wedding relationships with role assignment
  • vendors - Vendor profiles, categories, contact information, contract status
  • guests - Guest list with RSVP status, dietary restrictions, contact details
  • budget_items - Budget tracking with categories, estimated vs. actual amounts
  • messages - Vendor communication history with read receipts
  • seating_tables - Table arrangements with capacity and guest assignments

Relationships:

  • One wedding → Many vendors, guests, budget items, seating tables
  • Many-to-many: users ↔ weddings (via wedding_members with roles: bride, groom, parent, planner)
  • Cascade deletes: When wedding is deleted, all related data is removed (GDPR compliance)

Performance Optimizations

  • Image Optimization: next/image with automatic WebP conversion, lazy loading for photo galleries, 85% reduction in image bandwidth
  • Code Splitting: Dynamic imports for heavy components (seating chart editor with drag-and-drop libraries)
  • Database Indexing: B-tree indexes on wedding_id, user_id, guest_id for sub-100ms query performance
  • Caching Strategy: SWR for client-side data fetching with 30-second stale-while-revalidate, Redis caching for vendor search
  • Server Components: Vendor lists, budget summaries rendered server-side, reducing client bundle from 380KB to 220KB

Security

  • Authentication: Supabase Auth with email verification, magic links, OAuth (Google, Facebook) for social sign-in
  • Authorization: Row-Level Security (RLS) policies ensure users only access weddings they're members of
  • Input Validation: Zod schemas validate all form inputs on client and server
  • XSS Prevention: React's built-in escaping plus Content Security Policy headers
  • Rate Limiting: Supabase provides automatic API rate limiting (100 requests/minute per user)
  • Data Encryption: AES-256 encryption at rest, TLS 1.3 in transit

Outcomes

User Impact:

  • 50+ couples used the platform for their 2024-2025 wedding planning
  • Average 15 hours saved per couple compared to manual spreadsheet coordination
  • 98% user satisfaction rating based on post-wedding surveys
  • 100% mobile engagement rate - all users accessed on mobile during vendor meetings and venue visits
  • Zero data loss incidents over 12 months of operation

Technical Metrics:

  • Performance: Lighthouse score 96 (Performance), 100 (Accessibility, Best Practices, SEO)
  • Uptime: 99.9% uptime over 12 months (3 hours planned maintenance)
  • Load Time: 1.2s Time to Interactive on 3G networks, 0.6s on 4G
  • Real-time Latency: < 100ms for collaborative updates via WebSocket
  • Database Performance: 95th percentile query time < 150ms

Learning Outcomes:

  • Mastered Next.js 14 App Router server/client component patterns and parallel data fetching
  • Implemented production-grade real-time collaboration with optimistic UI and conflict resolution
  • Designed multi-tenant SaaS architecture with Row-Level Security (RLS) for data isolation
  • Gained deep PostgreSQL experience: query optimization, indexing strategies, JSONB columns for flexible schema
  • Learned responsive design patterns for complex interfaces (drag-and-drop on mobile)

Challenges and Solutions

Challenge 1: Real-time Conflict Resolution

  • Problem: Multiple users editing the same guest list simultaneously caused data conflicts. Initial implementation used last-write-wins, but couples reported losing important changes.
  • Solution: Implemented optimistic UI with version tracking. Display conflict notification when stale data is detected, show both versions side-by-side, and let users choose which to keep. Added presence indicators (Figma-style cursors) so users see who's editing which section in real-time.

Challenge 2: Mobile Performance on Slow Networks

  • Problem: Initial bundle size was 380KB gzipped. Users on 3G networks experienced 5+ second load times, causing 40% bounce rate on mobile.
  • Solution: Aggressive code splitting (dynamic imports for seating chart, vendor search), moved lists to server components (eliminating 120KB of client JavaScript), implemented skeleton screens for perceived performance. Result: 1.2s Time to Interactive on 3G, bounce rate reduced to 8%.

Challenge 3: Vendor Email Deliverability

  • Problem: Automated RSVP reminders and vendor deadline notifications landed in spam 60% of the time.
  • Solution: Configured SPF, DKIM, and DMARC records for custom domain. Migrated from Supabase's default SMTP to SendGrid with dedicated IP. Implemented double opt-in for email notifications. Deliverability improved to 97%.

Challenge 4: Complex Seating Chart UX

  • Problem: Drag-and-drop seating chart worked great on desktop but was nearly unusable on mobile (small touch targets, no multi-select).
  • Solution: Built mobile-specific seating interface with tap-to-select, batch actions (move 5 guests at once), and swipe gestures. Desktop kept drag-and-drop, mobile got optimized touch interface. Mobile seating chart usage increased from 12% to 65%.

Future Enhancements

  • AI-Powered Vendor Recommendations: Machine learning model to match couples with vendors based on style preferences (photos of liked venues/decorations), budget range, and location. Train on historical booking data.

  • Budget Forecasting: Predictive model to estimate final wedding costs based on initial selections and historical data from similar weddings (venue type, guest count, season). Alert couples early if selections trend over budget.

  • Automated Timeline Generation: Generate customized wedding timeline based on best practices and vendor requirements (photographer needs 2 hours for portraits, caterer needs kitchen access 4 hours before dinner). Integrate vendor schedules automatically.

  • Seating Chart Optimizer: Algorithm to suggest optimal seating arrangements based on guest relationships (family, friends, coworkers), dietary restrictions, and table capacities. Use constraint satisfaction problem solver.

  • Integration with Calendar Apps: Bi-directional sync with Google Calendar, Apple Calendar for timeline milestones and vendor appointments. Automated reminders for upcoming deadlines.

  • Digital Wedding Website Generator: Automatically generate customized wedding website from platform data (story, photos, venue details, registry links). One-click publish with custom domain.