Can you spot the AI? Over 8 rounds you read two answers to the same question, one written by a person and one by AI, and pick the AI.
Live: https://turing-test.pknspace.com
- 8 rounds with a shuffled question order, ending with a bonus round about ELIZA.
- After each pick, the answer is revealed with a clue on how to tell them apart.
- A final score screen with confetti.
- Keyboard shortcuts for picking and moving to the next round.
React 19 · TypeScript · Vite · Tailwind CSS v4 · shadcn/ui · Framer Motion · Vitest. No backend.
Requires Node 22.18+ (.nvmrc pins 22).
npm install
npm run dev| Command | What it does |
|---|---|
npm run dev |
Dev server at http://localhost:5173 |
npm run build |
Typecheck and production build into dist/ |
npm run typecheck |
TypeScript check (tsc -b) |
npm run preview |
Serve the built dist/ locally |
npm run lint |
ESLint |
npm test |
Unit tests (Vitest): shuffle and question data |
npm run check |
Typecheck, lint and tests |
npm run deploy |
Checks, builds and uploads to the VPS |
npm run deploy:dry |
Same, but only previews the upload |
The site is static: npm run build writes dist/, which is synced to a VPS where
Caddy serves it directly (no restart needed).
- One-time setup: copy
.env.exampleto.env.prod.local(git-ignored) and fill inDEPLOY_HOST,DEPLOY_PORTandDEPLOY_DIR. You also need SSH key access to the server. - Deploy:
npm run deploy:dry # preview what would change npm run deploy # checks, build, upload
- Questions live in
src/data/turing.json. Each one has a prompt, human answers, AI answers and aclue. Thetype: "eliza"question is always the last round. - Each round picks one human and one AI answer and shuffles their order
(
src/utils/shuffle.ts). - The game is a small reducer state machine: start → playing → revealed → … → finished.
- UI. shadcn/ui components live in
src/components/ui/(vendored, added withnpx shadcn add, not linted). The theme tokens insrc/index.cssgive them the indigo look. The answer cards' flip is custom;src/lib/styles.tsholds the large classroom button style.