Our babysitter recently played a fun game with our kids called “Fake It”. It’s a simple party game, not too complex, and doesn’t require any props. The app store is full of them, but they all hide ads or have a €9.99/week (week!) subscription model, all trying to trick you into buying or paying. But it’s such a simple game. Surely, I can just make my own version, right?
Here’s that attempt: Imposter .
The game#
It’s a “find the imposter” party game on a single shared phone. Everyone takes turns holding the screen to reveal their word: “banana”, “Eiffel Tower”, “Taylor Swift”, whatever the round’s category is. One player, picked at random, sees IMPOSTER instead and has to bluff their way through the discussion.
After a short timer, everyone votes anonymously on who they think the imposter was. If the crew picks an innocent, the imposter wins on the spot. If the crew unmasks the imposter, the imposter gets one last chance: pick the secret word from the category and steal the win anyway.
That’s it. The whole thing fits in your head in about thirty seconds.
There are 14 word categories: animals, food, places, films, music, sports, jobs, brands, hobbies, party, family, technology, celebrities, and a “spicy” pile for adult-only games. English and Dutch out of the box, more languages are easy to add — the words live in JSON files, no code changes needed.
Free, no tracking, runs offline#
There are no ads, no analytics, no tracking, no accounts. Player names and settings live in localStorage on your device. Nothing leaves the phone.
It’s a PWA
, so once it loads the first time you can install it to your home screen and play it on a plane, on the metro, anywhere with no signal. Caddy serves the static dist/ folder on my end; if you’d rather host it yourself, the Caddyfile.example
in the repo has the cache and security headers I use in production.
The whole thing is MIT-licensed. Fork it, swap the word lists, ship it for your friend group. I don’t mind.
Built mostly by AI, in two days#
Most of the code in this thing was written by Claude . I spent two days driving it: setting the visual style, deciding what should animate and how, fixing the UX where the model got it subtly wrong, and choosing what not to add. The mechanic is well-known, the React surface is small, and most of the work was taste rather than typing.
The parts I cared about most were the bits AI tends to get wrong: the feel of the hand-off screen between players, the timing of the reveal animation, what the spicy category actually contains, how voting feels when the room is loud and the kids are impatient. Those took the most iteration.
I wouldn’t have spent a weekend building this five years ago. The idea-to-shipped-PWA loop is short enough now that small, useless, fun things are worth making again.
Try it#
Live: imposter.ma.ttias.be Code: github.com/mattiasgeniar/imposter-game
If you find a bug, open an issue. If you want to add a language, the README explains how.