Vit Busek
← Projekty

srpen 2026

Games DB

Osobní katalog PC her, který si celý obchod Steamu zaindexuje do Postgresu, takže procházení, filtrování ani vyhledávání rate-limitované API Steamu vůbec nepotřebují.

Úvodní stránka Games DB: banner s vybranou hrou nad mřížkou Top Sellers s obaly her, cenami a slevovými štítky.
Role
Sólo projekt — frontend, backend, infrastruktura
Stack
Next.js, TypeScript, Tailwind, Postgres, Drizzle, Auth.js, Vercel, Docker

Co to přináší

Technický návrh

HTTPS, rate limited

Klient

  • Next.js 16 App Router

  • React Server Components

Server

  • server/ modules

    Katalog, procházení, detail, knihovna, účet.

  • Auth.js

  • server/steam

    Vlastní rate limiter a TTL cache.

Data

  • Postgres (Neon)

  • Drizzle ORM

    Čtyři zaverzované migrace.

  • pg_trgm GIN index

    Nad game.name.

Externí služby

  • Steam Web API

Server Components

Drizzle

  1. Vyhledávání běží na Postgresu, ne na vyhledávací službě. Jeden GIN index pg_trgm nad game.name pokrývá 245 025 řádků. Není co synchronizovat a není třeba platit druhé úložiště.
  2. Migrace se generují a verzují. V db/migrations leží všechny čtyři SQL soubory a rozšíření pg_trgm zakládá migrace 0003 — ne ruční krok, který si někdo musí u nové databáze pamatovat.
  3. Klient Steamu si nese vlastní rate limiter a cache. Vykreslení stránky se nemůže rozpadnout do neomezeného počtu volání na Steam Web API, ať si stránka řekne o cokoli.