A full-stack platform for live events

Live events · Operations · Ticketing

A frontend-led event experience built with Next.js, backed by NestJS and PostgreSQL for event data and lifecycle rules.

Role
Frontend-led Full-stack Engineer
Platform
Next.js web app + NestJS API
LIV DOT event discovery page with a search bar and upcoming events.
Guest event discoveryOpen project

The work

LIV DOT brings host operations and the public ticket-buying journey into one event platform. Hosts can create events, manage crew and streaming readiness, and move events through lifecycle states; guests can discover events and select tickets.

The challenge

Hosts and ticket buyers move through different parts of the same event lifecycle. Readiness checks, live-state transitions, ticket inventory, and checkout need to stay understandable while preventing invalid state changes.

Approach and architecture

I kept readiness and lifecycle rules in a pure domain core, with application use cases depending on an event-repository port. The HTTP adapter and UI can change without moving those policies into components.

The Next.js UI uses TanStack Query behind an event-repository port. NestJS endpoints persist event data through TypeORM migrations to PostgreSQL, and lifecycle updates use an atomic expected-version check so stale clients receive a conflict response.

An MSW adapter supports local exploration with controlled latency and failure scenarios, keeping loading, validation, and error states reproducible.

My contributions

  • Built a six-step event-creation flow with an optional section-based seat-map builder and preview.
  • Implemented host workflows for event details, readiness, crew and streaming, live control, replay, ticketing, and order management.
  • Built the guest discovery, event details, seat-selection, multi-event basket, and checkout experience.
  • Implemented NestJS event endpoints and PostgreSQL persistence, with version-checked state transitions and migration-managed schema.
  • Added deterministic scenarios for readiness blockers, invalid transitions, network failures, and stale-version conflicts.

Outcome

The result is a full-stack event operations product with a frontend-led host and guest experience, an event API, and persistent PostgreSQL records. The public demo is explorable with seeded events; account preview remains browser-local and checkout is simulated, with no production identity or payment provider connected.

Technologies

  • Next.js App Router
  • React
  • TypeScript
  • TanStack Query
  • Tailwind CSS
  • shadcn/ui
  • Radix UI
  • Zod
  • NestJS
  • TypeORM
  • PostgreSQL
  • REST API
  • MSW
  • Vitest
  • React Testing Library
  • Playwright
  • Docker Compose
Back to selected work