Skip to content
Nachi3D Labs

WorkMogador Gaming Club

Mogador Gaming Club

In Progress

Console booking app for a video game club: stations, time blocks, memberships.

ClientAssociation Essaouira Mogador
Year2026
Mogador Gaming Club — home page hero
Mogador Gaming Club — screenshot 1

Overview

The Project

Members book a station for a one-hour block, say how many people are coming and pick a game from the club's library. Behind that, an admin area used on the floor: who's on which console tonight, one-tap check-in, no-show marking, slot generation, controller inventory, memberships. Three stations today — two PS4s and a PS3 — on Thursday and Friday evenings at Dar Souiri.

The core constraint isn't capacity, it's exclusivity: one party per console per block. That lives in Postgres as a unique index plus a FOR UPDATE lock inside the booking function, never in application code — two people tapping the same 18:00 slot is the failure that loses a member. Same for membership and seat limits. The app sends intent; the database decides. The lock was proved under real concurrency rather than sequentially.

The admin dashboard is what will answer whether the club is viable before signing a lease — occupancy, no-show rate, refused demand.

Stack

Next.js 16
React 19
TypeScript
Supabase
Tailwind v4
next-intl
PWA
Vercel

Key features

What it does

Station-and-block booking with exclusivity enforced in Postgres, not in app code
Memberships: pay-per-block or monthly pass, checked against the slot's date rather than the booking date
Admin floor board: live check-in, no-show, end-session, slot generation, one-off evenings
Game catalogue with per-station availability and local player counts, filtering what a party of four can pick
Installable PWA that caches nothing which can go stale — offline shows 'club unreachable', never a stale slot
FR/EN throughout, light and night themes, landing pages statically prerendered

This project uses the Custom Apps service.

All work

Want something like this built for you?

Tell me what you'd like to build and we'll see if it fits.