How sjm176/sophie-keith-rsvp works
This appears to be a wedding RSVP site with guest response collection and a password-protected RSVP dashboard. The sampled code confirms submission, storage, notification, authentication, and statistics behavior; page markup was not sampled, so links from the pages to their handlers are omitted where unverified.
Main entry points: store.ts RSVP store · middleware.ts Access middleware · rsvp.ts RSVP handler · notify.ts Email notification
Components 15
Wedding site
- Wedding page
src/pages/index.astro - Wedding details
src/data/wedding.ts
Guest responses
- RSVP handler
src/pages/api/rsvp.ts - RSVP store
src/lib/store.ts - Email notification
src/lib/notify.ts
Dashboard access
- Login page
src/pages/login.astro - Login handler
src/pages/api/login.ts - Session signing
src/lib/auth.ts - Access middleware
src/middleware.ts - RSVP dashboard
src/pages/dashboard.astro - Statistics handler
src/pages/api/stats.ts - Logout handler
src/pages/api/logout.ts
External services
- RSVP records
- Formspree
Other components
- Guest
Connections 14
- Guest → Wedding page: visits
- RSVP handler → RSVP store: saves RSVP
- RSVP store → RSVP records: writes
- RSVP handler → Email notification: forwards copy
- Email notification → Formspree: sends notification
- Login handler → Session signing: creates token
- Access middleware → Session signing: validates token
- Access middleware → RSVP dashboard: protects
- Access middleware → Statistics handler: protects
- Statistics handler → RSVP store: reads and aggregates
- RSVP store → RSVP records: reads records
- Guest → Login page: visits
- Guest → Login handler: submits password
- Guest → Logout handler: requests logout