DEV Community

simon
simon

Posted on • Originally published at puzzlepk.com

How I Built a Puzzle Gaming Platform with 14 Games from Scratch [Series Intro]

The Result First, Then the Journey

Let me start with the facts: 14 puzzle games, real-time multiplayer PK battles, bilingual Chinese/English support, 93 SSG prerendered routes, deployed globally on Cloudflare Pages, and steadily growing users.

All built by one person from scratch.

I'm writing this series because when I started this project, I couldn't find a single article that honestly described what it's like to build a complete online gaming platform solo — the decisions, the mistakes, the surprises. So this series is that article.


What Is Puzzle PK?

Puzzle PK is an online puzzle gaming platform with a twist: every game has both a solo mode and a real-time PK (player vs player) battle mode.

14 games include:

  • Sudoku (4 difficulty levels + PK Speed/Steal modes)
  • Minesweeper (beginner to expert + PK)
  • Sokoban (push-box puzzles with BFS pathfinding)
  • Tetris Battle (garbage row attacks in PK mode)
  • Gomoku (5-in-a-row with AI difficulty levels)
  • Sliding Puzzle, Math 24, Drop 2048, Water Sort, Codebreaker, Hexa Puzzle
  • Idiom Quiz (2,000+ Chinese idioms — fill-blanks, daily Wordle-style, PK mode)

Tech stack in one sentence: Angular 21 (Signals + Zoneless + SSR) + Go Fiber v3 + PostgreSQL + WebSocket + Cloudflare Pages.


Series Roadmap

I've organized the full development story into 8 focused articles:

  1. Why I Built This — The origin story, market reasoning, and motivation
  2. Tech Stack Decisions — Why Angular 21 Signals + Go Fiber, and what I'd change
  3. Game Engine Design — One interface to rule 14 games
  4. Real-Time Multiplayer — WebSocket rooms, reconnection logic, heartbeats
  5. SSR + SSG for SEO — 93 prerendered routes and Cloudflare edge functions
  6. Bilingual i18n — Running Chinese and English in one codebase
  7. Sudoku Deep Dive — Algorithm, UX, and PK state sync
  8. Growth as an Indie Dev — Content marketing, retention systems, and distribution

Each article stands alone — jump to whichever topic interests you.


A Few Numbers

  • First version: Sudoku only, barely functional
  • First real stranger user: Week 3, someone on Twitter said "this sudoku is pretty good"
  • Today: 14 games, stable system, growing traffic
  • Code: ~40k lines TypeScript (frontend), ~15k lines Go (backend)
  • Time: About 8 months from zero to current state

Not a long time, not a huge codebase. But every line represents a specific problem solved, usually late at night.


Try it yourself at puzzlepk.com — no registration required, guest play supported.

Top comments (0)