YMAU Registration and Review Desk

Conference site, Stripe registration, and a staff review desk for Yale Model African Union's sixth conference in Addis Ababa.

Lead Developer ยท Aug 2026 to now

Results

The problem

YMAU VI takes applications from thousands of young delegates, with fees, financial aid, documents, and a cap on paid places. The Secretariat needed one system to register and charge delegates, review aid fairly, and never double-sell a place or mark someone paid by mistake.

What I built

The hard part

Selling a capped number of places correctly across serverless instances, when one delegate can pay for a whole group and Stripe responses can get lost. Every payment, submission and aid write takes one transaction-scoped Postgres row lock first. A group checkout reserves all its places at once or fails as a whole, and a checkout only expires when Stripe confirms it, never on the app's own clock. I tested it by running the real migration in an in-memory Postgres, with two people racing for the last place and duplicate or out-of-order webhooks.

How it fits together

Invariant: a paid place exists only after Stripe confirms it, and only one writer can hold the capacity lock at a time.

Decisions

Tech: Next.js, Stripe, PostgreSQL. Live

By David Antwi (david.antwi@yale.edu). Markdown version: /work/ymau-registration-desk.md. Full profile: /llms.txt.