PRODUCT // SHIPPED
OurVows
Event pages from templates, guest RSVP, and a simple host dashboard.
What it does
Hosts build pages from composable templates. Guests RSVP in a flow that still makes sense on a phone. Owners get responses and analytics in the dashboard; heavier breakdowns show up when the plan allows it.
What stays private
This is a portfolio snapshot. I stay at the level of API, web, and data boundaries. No host names, no schema dumps, no roadmap slides. Try the live site if you want the real feel.
// data_flow Rough flow left to right. Not every box in prod, just the spine.
Layer_01
Browser
Public event URLs, RSVP UI, marketing
Layer_02
Nuxt 3
SSR/SPA hybrid, Pinia, templates registry
Layer_03
NestJS
Auth, validation, throttling, analytics
Layer_04
PostgreSQL
Migrations in production
Layer_01
Browser
Public event URLs, RSVP UI
Layer_02
Nuxt 3
Templates registry, creator UI
Layer_03
NestJS
Events, RSVP, entitlements
Layer_04
PostgreSQL
- [01]
Templates without spaghetti
Public pages resolve through a registry so new visual directions do not fork core RSVP logic.
- [02]
Motion with an off switch
Rich templates still respect reduced motion: same content, less animation when the user asks for that.
- [03]
One source for gates
Plan-aware features are enforced consistently so the dashboard never promises what the API will not deliver.
- [04]
API-first contracts
Validation and predictable error bodies on the server keep clients thin and failures understandable.
next_steps
See the live product or the long write-up
The case study goes deeper on context and trade-offs. I still keep the stuff that belongs in private docs out of it.