The Impostor is a multiplayer social deduction web app built with Next.js and TypeScript. Every round, all players receive the same secret word, except the impostor, who only knows the category or a clue. Players take turns giving one-word clues t…
The Impostor is a multiplayer social deduction web app built with Next.js and TypeScript. Every round, all players receive the same secret word, except the impostor, who only knows the category or a clue. Players take turns giving one-word clues to prove they know the word without revealing it, then everyone votes to eliminate a suspect. Innocents win by taking out all impostors before they get outnumbered. It supports 3 to 16 players, works online with room codes or locally in Pass & Play mode, comes in English and Spanish, and installs as a PWA straight to your home screen.
I used AI as a pair programmer, but my priority was always to understand and write the code myself:
- Initial UI Design: The first frontend version was generated with an AI web design tool to get a React/TS boilerplate quickly. I then heavily modified it, rewriting components and rebuilding the layout until little of the original remained.
- Game Logic & Core Features: I wrote the logic, Redis backend, and auth system myself. AI helped me get unstuck with unfamiliar libraries like jose and Redis WATCH/EXEC patterns.
- Styling: Animations and glassmorphism were coded manually. AI occasionally suggested Tailwind classes or visual ideas.
- Documentation: Used AI to quickly look up react-i18next and Next.js App Router patterns without breaking flow.
- Word & Clue Database: AI generated most of the secret words and clues across both languages, but it often repeated entries or got things wrong, so I had to manually review and clean everything up.