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:
- Why I Built This — The origin story, market reasoning, and motivation
- Tech Stack Decisions — Why Angular 21 Signals + Go Fiber, and what I'd change
- Game Engine Design — One interface to rule 14 games
- Real-Time Multiplayer — WebSocket rooms, reconnection logic, heartbeats
- SSR + SSG for SEO — 93 prerendered routes and Cloudflare edge functions
- Bilingual i18n — Running Chinese and English in one codebase
- Sudoku Deep Dive — Algorithm, UX, and PK state sync
- 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.
![How I Built a Puzzle Gaming Platform with 14 Games from Scratch [Series Intro]](https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn4glcf0isa9ldfe3r5ve.png)

