How I built Pangramble

A daily pangram game, built in plain TypeScript to learn the language.

Pangramble is a daily word game: you get three seed words and try to craft the shortest possible pangram, a sentence that uses every letter of the alphabet.

Illustration: a fox leaping over a sleeping golden retriever

Illustrations on this page were generated with AI.

Listening to an episode with the creator of Wordle, Josh Wardle inspired me to try something similar, even if I was several years late :) I built Pangramble as a challenge: make something fun and interesting, learn and experiment with the early stages of AI-assisted coding (back in 2023 and early 2024), and learn frontend development concepts and best practices along the way.

Plain TypeScript, no framework. I chose plain TypeScript without a UI framework on purpose, to learn the nuts and bolts of the language and keep the footprint small. Looking back, I’d lean toward a simple framework now. Svelte is my favorite right now, and I’m considering porting Pangramble over.

The frontend is small TypeScript modules with strict type checking: scoring, text utilities, the on-screen keyboard, the daily seed words, and stats. tsc compiles them and esbuild bundles them. There is no UI framework, so the code works on the DOM directly. Your progress is saved in the browser, and Firebase keeps the leaderboard. I wrote tests for the core logic from day one.

Shipping it. Pangramble launched in October 2024. The weeks after were the usual fixes: changes based on feedback, a mock backend so the game runs without Firebase, and a few rounds of date bugs. The build script grew along the way: it now minifies, purges unused CSS, strips console.log calls, and obfuscates the bundle.

If I had used a TypeScript framework from the start, I would have saved a lot of development time. But then I wouldn’t have learned what these problems are and why they matter. I think it’s good to build things by hand first, so you really understand them, and then improve and standardize with off-the-shelf tools. That is also my advice for ML and AI work.

What I like from a linguistics point of view: I now probably have one of the largest collections of English pangrams that have never been written before. For the LLM evangelists: that means they aren’t part of any training data :) They turn out to be hard for LLMs to figure out. Try the Pangramble game. I challenge your favorite LLM to figure this out, without any tips from you. If you have an LLM that solves it consistently on the first try, let me know! You can also post about it with #pangramblellmchallenge and #pangramble.

Recently I went through the leaderboard to see how people play: what all the pangrams say about how people play.