The Bugdle archive collects every daily code-review puzzle ever published on the site. Each one is a hand-written snippet of plausible production code — Python, TypeScript, Go, SQL, Rust, and a handful of others — with exactly one intentional bug. Your job, as on the daily, is to identify the language, click the buggy line, and write the replacement that fixes it.

The catalog spans 60 cases across 9 languages and 20 bug categories. Replays in the archive are spoiler-free until you click the postmortem on each puzzle page — your streak is unaffected no matter how many you grind through.

How to use the archive

The list below is sortable by case number, language, category, and difficulty. Use it the way you'd use a dataset of code-review warm-ups: pick a category you find harder than the rest, drill it until you can spot the shape from across the room, then move on. The hub pages collected at the bottom of this page give you a second axis — by language, or by bug class — and each hub includes a short article on the underlying pattern, useful even when you're not playing.

If you're new

Start with the easier difficulty rungs (1 and 2 — the badge on each card). The bug is signposted by the puzzle title category, so even if your reading of the snippet is shaky you'll have a framework. The postmortem at the end of every game is where the real teaching happens; don't rush past it.

If you've solved a few

Try the language hubs in a language you don't write often. The instinct that flags an unfamiliar bug pattern is the muscle Bugdle is designed to build, and the discomfort of an unfamiliar syntax is exactly what stretches it.