10 min read

Club Impostor: Building a small web videogame - origins

Discover the reasons that led me to undertake this project.

ReactNode.jsWebSocketMultiplayerAI
Vicente Nava

Vicente Nava

March 4, 2026

Club Impostor: Building a small web videogame - origins

Background

For those unfamiliar with the game “Impostor,” it’s a social deduction game where players take on the roles of civilians or impostors, and must determine who the impostors are through discussions and voting. Civilians receive a secret word that they must describe without saying it directly, while impostors don’t know the word and must pretend they do to avoid being discovered.

I first learned about the game through Instagram Reels. I didn’t understand what it was about, but it seemed like a lot of fun.

I mentioned it at a family dinner, and my sister told me she had already played it. She pulled out her phone and we played with the help of an app. We had a great time—it was about 2 hours of intense gaming.

However, the app had its flaws. It had too many ads between each round and game, which made it annoying to wait and endure annoying advertisements for every round.

The idea and execution

That’s when the idea struck me:

AI models right now are super powerful. Surely I can make a functional prototype in a day quickly.

The idea stuck with me, so the next day I asked my good friend Copilot to make a game like it. It didn’t go well at all.

Vague ideas, ambiguous definitions, and not having a clear objective meant that I had to iterate many times to get a functional prototype. The most powerful AIs at that time couldn’t understand what I wanted (or rather, I wasn’t putting enough effort into my prompts): neither GPT 5.2, nor Sonnet 4.5, nor Opus 4.5 could handle my poor instructions. Until, with a stroke of luck combined with the intelligence of some model—I can’t remember which—the first functional (or almost) prototype of what would become Club Impostor saw the light:

First version of Club Impostor

I know, it screams AI-generated from a mile away, but remember, that was the intention. I didn’t want to put in any effort correcting or auditing whatever the AI spat out, like many sites already in production. However, if there’s one thing I’m picky about, it’s the UI, and I didn’t like that at all. So I iterated several times and tested new models.

Then I learned about Codex, OpenAI’s agentic application. I decided to try it, and I was pleasantly surprised because their new flagship model was just launching: GPT 5.3-Codex.

To avoid wasting my credits thoughtlessly, I put a bit more effort into the prompt (I really wanted the UI to improve and not be AI slop), installed several frontend design skills for the AI, and let it work its magic.

I waited a moment without high expectations, when boom, the AI gives me something more dignified that doesn’t look as cheap as the previous iterations:

Second version of Club Impostor

Yes, the Lucide React icons and typical weird AI text still smell like AI, but the interface really improved quite a bit, don’t you think? The foundations of what would become the game’s current design are starting to show.

Not everything that glitters is gold

I was very impressed by the AI’s new deliverable, which also managed to connect the backend logic well with the new design and my new directions. I thought wow, this is great, and it only took me a day, I’ll be able to play it at our next friends gathering…

And so it was, a gathering I had planned for the weekend came around, and the game had its first real execution. While everyone could create their account and log in, the game was full of bugs, duplicate connections, gameplay errors, critical disconnection failures, among other issues. It was playable and served as a facilitator, but it was really far from what I expected. In the end we ended up playing it “manually”—the app just served to show the word to the players.

Change of plans

Despite my intention with the game being to vibe-code it completely, without dedicating any time or effort, my inner perfectionist couldn’t stand the AI’s result, and I didn’t like that my friends would see that something “I made” didn’t work and was of such poor quality.

Because of that, in the following days I continued iterating on the game, dedicating hours and auditing each result, implementing my own corrections with the help of my knowledge of web design and development (because yes, fortunately I learned programming before the AI boom and agents). With this, the foundations of the game began to take shape, the bugs diminished, and the design gradually improved.

Up to here are the origins of the game. In future posts I’ll talk about how the game’s identity was developed, the technical challenges I faced, the design decisions I made, and how the game evolved to what it is today.

If you made it this far, thank you for reading! If you like, visit the game’s website to take a look. See you in the next post!