Case study
Nomad Events
A community events platform, rebuilt from the client's original site: registration with QR check-in, galleries and an admin panel.
- Role
- Redesign, frontend, backend
- Stack
- Next.js · Neon Postgres
The problem
A community events business in Da Nang and Ko Phangan ran on a site built with a Vite single-page app, an Express API and a hosted MySQL database the team did not control. It needed a redesign, and a stack the client actually owns on free tiers.
What I built
- The client-approved redesign, rebuilt on Next.js with Server Actions.
- Event pages with online registration.
- Photo galleries, city pages and partner pages.
- An admin panel for events, registrations, partners, analytics and site settings, with a QR scanner for check-in at the door.
Key decisions
A full data migration
139 events, 58 albums and 4,032 photos moved from the old host to Neon Postgres and Cloudflare R2, with an idempotent image pipeline that converts every photo to WebP and stores it under a content-addressed key.
One master per image
Each photo is stored once at full quality and resized on demand by Next.js, instead of pre-generating sizes. Changing the image host later is a single database update.
Both versions live
The original site stays online next to the redesign, so the before and after can be compared side by side with the slider on this portfolio.