2026 · Next.js 16 · TypeScript · Prisma + PostgreSQL · Sanity CMS · Sentry

LeLi Talent Center

Full-stack platform for an arts center — online ticket sales with an interactive seat map, real bank acquiring, QR check-in, and privacy-first monitoring.

Role
Solo engineer — architecture, build, payments, deployment
Year
2026
Stack
FrameworkNext.js 16 (App Router, SSR) · React 19 · TypeScriptStylingTailwind CSS v4 · CSS ModulesContentSanity CMS · next-intlDataPostgreSQL · PrismaPaymentsHosted bank checkout · Apple Pay / Google PayInfrastructureVercel · nginx reverse proxy on a Hetzner VPSMonitoring & alertsSentry (no-PII) · Telegram Bot APIQualityVitest · ESLint + Stylelint · custom FSD linter
LeLi Talent Center — cover

The problem

An arts center outgrew the brochure site. It needed to sell event tickets online — real seats, real money, real refunds — without a ticketing middleman, while staying the fast, shareable marketing platform it already was.

The approach

Every page ships as fully-formed HTML with per-page SEO and Open Graph metadata. Content lives in the CMS, copy in a single typed i18n catalog, and the light/dark theme toggles without a flash. The codebase follows strict Feature-Sliced Design layering, enforced by a custom linter.

LeLi Talent Center homepage — hero and program listings

CMS-driven marketing pages — content ships without redeploys.

Tickets as a first-class product

  • Interactive seat map — you pick actual seats, not a quantity.
  • Checkout on the bank's hosted page — cards, Apple Pay, Google Pay; the ticket arrives by email.
  • Ticket page with QR — every paid booking gets a verifiable code.
  • Admin panel — guest lists per event and camera-based QR check-in at the door.
  • Fifteen-minute holds — seats stay locked while you pay; a cron releases expired holds automatically.

Bookings live in PostgreSQL: unique constraints make "one seat, one paid booking" a database guarantee, and customer PII stays out of the public CMS dataset.

LeLi lesson catalogue — SSR pages with per-route metadata

The catalogue side stays pure SSR — fast, indexed, shareable.

The payment side is a secure server-side integration with the bank's hosted checkout: signed API requests, webhook-driven status updates, and automatic refunds for late payments.

The outcome

leli-talent-center.com sells tickets end-to-end — from picking a seat on the map to scanning a QR at the door — on top of a marketing site that stays fast, indexed, and CMS-driven.