In Build

PLAYGRND Draft

I built PLAYGRND Draft as a fast football game for short mobile sessions: spin an iconic national-team tournament squad, draft an all-time XI by position, simulate the tournament, and share the result.

Next.jsTypeScriptPostgresHetzner

Interactive product case study

The product bet

Football draft games are easy to overbuild. The core experience needs enough recognizable players and simulation depth to feel meaningful, but every login, network request, asset dependency, or long setup step makes a casual session less likely to finish. The product had to feel immediate while keeping sharing and aggregate learning available as optional layers.

Role
Founder, product designer, and engineer
Period
2026 - Present
Stage
Live experiment, active iteration

Product loop

From public record to trusted input

  1. 01Generate a tournament squad capsule and present a position-specific choice from recognizable historical players.
  2. 02Let the player complete a balanced XI without login, remote assets, or server-dependent game state.
  3. 03Run a deterministic group and knockout simulation from the draft state and seed.
  4. 04Offer a shareable result, then collect only anonymous aggregate signals without blocking gameplay.

System shape

Simple boundaries, explicit sources of truth

Game client

Next.js, React, and TypeScript with drafting and simulation running locally in the browser

Football data

Curated tournament squads and independent ratings shipped with the application bundle

Simulation

Seeded, reproducible tournament runs covering group and knockout stages

Sharing

Compact saved runs behind short IDs, with local share text as the failure fallback

Aggregate stats

Optional Postgres-backed counters published as a static snapshot outside the gameplay path

Delivery

Static release directories on Hetzner behind Caddy, with the optional API managed separately

Engineering judgment

Decisions that keep the product legible

No backend in the game loop

Starting, drafting, simulating, and seeing a result must keep working if the share and stats API is unavailable.

Recognizable squads over exhaustive data

The first version favors iconic tournament capsules so most spins create an understandable football decision rather than a history quiz.

Deterministic by design

A seed and the selected XI are enough to reproduce a run, which keeps the simulation testable and makes compact sharing possible.

Rights-aware presentation

The fan-made game avoids official logos, player photos, trophy imagery, and claims of affiliation while keeping names and tournament facts descriptive.

Current proof

What is already delivered

  • Mobile-first positional draft flow built around curated historical tournament squads
  • Local deterministic tournament simulation with group and knockout progression
  • Shareable saved runs with graceful fallback when the optional API is unavailable
  • Anonymous aggregate statistics generated into a fast static public snapshot
  • Independent PLAYGRND branding, explicit rights boundaries, and Hetzner release deployment

Next proof

The next useful work is learning from completed runs: tune squad variety and simulation balance, improve the moments people want to share, and add backend features only when they strengthen that loop without slowing it down.