Case study

MovieTQ

A real-time multiplayer browser game where players race to name films first. Create or join rooms, play across multiple game modes, compete on leaderboards, and keep your progression through accounts, achievements, in-game currency, and cosmetics.

Live · movietq.com Visit the game

Two live modes

Survival

Bomb-It

Players take turns naming a film that fits the prompt before the bomb’s timer runs out. Miss, and you lose a life — last one standing wins.

Rounds

Trailer Quiz

A trailer plays and everyone races to name the film before the round timer ends. The answer and the points land together at the buzzer.

Two modes are live today; more are on the way.

Inside the game

Real-time multiplayer

Server-authoritative rooms keep every player on the same frame, synced within a second. The server decides; clients just render.

Persistent progression

Accounts, levels, and XP that track your match scores — plus global leaderboards and achievements granted automatically from how you play.

An in-game economy

Earn Popcorn by playing and spend it in a cosmetics store — avatars, titles, backgrounds — with optional packs and subscription tiers through Stripe.

Moderation built in

An admin console with audited system logs, player and trailer reports, and the usual ban, mute, and block tools keeps lobbies civil.

55,000+ Films
2 Live game modes
1s Real-time sync
Web No install

Under the hood

Plain English by default — switch to the engineering detail.

A server-authoritative game loop

The server runs the whole match as a state machine on a one-second heartbeat, so scoring and timing can’t be faked by a client.

Real-time sync

Everyone in a room sees the same trailer at the same moment; the server is the single source of truth.

Trailers without the bandwidth bill

Trailers stream straight from YouTube’s CDN, and the player is cropped to hide its controls without breaking YouTube’s rules.

Accounts, economy, and payments

Profiles persist levels, currency, and cosmetics, and Stripe handles packs and subscriptions.

One TypeScript codebase

Frontend, backend, and shared types live in one repository, typed end to end.

The social layer

MovieTQ is multiplayer first — the people are half the game.

Lobby chat

Real-time chat with colour-picked bubbles and inline markdown — bold, italics, the lot — that expire on their own.

Emotes and reactions

Quick reactions during a match, down to lobbing a tomato at whoever just lost the round.

Leaderboards and profiles

A global ranking with the top three highlighted, and player profiles showing level, XP, and achievements by rarity tier.

Achievements

Granted automatically from match data, each with its own rarity, border, and glow.

Built with

  • TypeScript
  • React
  • Vite
  • Node.js
  • Express
  • Supabase
  • PostgreSQL
  • Stripe

The whole stack, built in-house

Frontend, backend, database, real-time multiplayer, accounts, and payments — designed, built, and operated end to end.