mwlde

One Pawn

C++ engine / WebAssembly / Web Worker / Next.js / Supabase

One pawn has a purposefully boring identity commitment. It’s focused, honest and structured. It was built for me initially, because, unfortunately, I’m rather fond of aesthetics — and neither of the popular options quite satisfied what I wanted as someone who doesn’t play professionally, but still wants to improve.

So, One Pawn has a C++ engine that runs entirely in the browser compiled to WebAssembly, running in a Web Worker, so games work offline and no one is calculating moves on your behalf.

The engine reports what happened. You decide what to do with it.

Every finished game is classified move-by-move against the engine’s own evaluation. Blunders, mistakes, and critical moments are labelled, but the app doesn’t immediately tell you what to think about them. You see what the engine sees, then decide whether to drill the position, replay it, or simply move on. For now, I wanted the underlying data to speak for itself before putting another voice on top of it, so coach-style explanations and summaries of recurring mistakes will be added later as extra resources.

Flashcards to learn your chess openings? Not quite but…

One Pawn borrows Anki’s spaced-repetition idea and applies it to opening theory. In short, lines you complete in learn mode enter a review queue: get them right, they appear less often; get them wrong, they come back tomorrow. So you don’t need to keep track of it yourself, just play what’s in front of you. The goal isn’t to memorise everything — it’s to actually retain the 5-10 openings you favor, instead of forgetting them the week after learning them, which, admittedly, was the problem I built this to solve in the first place.