TrackMUN
Model UN conference management platform
A full-stack platform for running Model UN conferences end to end: delegate registration, council assignments, QR check-in, and a live press feed. Built with React, Hono on Cloudflare Workers, Turso, and Supabase Auth.
- Status
- Active
- Touches
- TypeScript / React / Hono / Cloudflare Workers / Turso / Drizzle ORM
- References
What it does
TrackMUN is a full-stack platform for managing a Model UN conference: delegate registration, committee assignments, check-in, and press operations in one system.
It is not a demo. TrackMUN ran NesMUN 2026 live, serving hundreds of requests and handling real delegate activity throughout the conference: registrations, council assignments, QR check-ins, and the press feed.
Five roles share it, and access control is the spine of the design. Admin, chair, organizing committee, delegate and press each see only the part of the system that belongs to them, enforced by JWT-based role checks.
Features
- Delegate management with QR check-in, so arrivals are scanned rather than ticked off a printout.
- Drag-and-drop council management for building and reshuffling committees.
- A real-time press feed and photo gallery.
- An admin panel with user impersonation, for reproducing exactly what a given user sees.
- Direct-to-R2 file uploads through presigned URLs, which keeps large photo uploads off the API path.
- Email notifications.
- White-label branding driven by a single configuration file, so a different conference can run its own instance.
Stack
The frontend is React 18 and TypeScript on Vite, styled with Tailwind and shadcn/ui. The API is Hono with an OpenAPI schema, deployed as Cloudflare Pages Functions, so the backend runs on Workers.
Data sits in Turso, a libSQL database, accessed through Drizzle ORM. Authentication is Supabase Auth, with role-based access control derived from its JWTs. File storage is Cloudflare R2 and email delivery is Brevo. Tests run on Vitest, and the repository is a pnpm workspace.