[ SOLO · DESIGN + FULL-STACK · 2026 ]

An AI that hosts a murder mystery for you and a friend.

Two players join a room. An AI plays the host and the rest of the suspects — each with a secret motive. Every case is generated live, so it never plays out the same way twice. Shipped as a real product: bilingual, voiced, monetized.

Play the live game → View source ↗
→ ROLESolo — product, design, frontend, backend, prompt/LLM orchestration, payments, deploy.
→ TYPESelf-initiated, shipped live product at mystnight.com — with real users, accounts and payments.
→ STACKNext.js 14 (App Router) · Supabase (Postgres + RLS + Realtime + Auth) · DeepSeek / OpenAI (text) · OpenAI & Azure Neural TTS (voice) · Stripe · Vercel.
→ MODESAI-hosted murder mystery · Cthulhu-style investigation · lateral-thinking puzzles · party game — four game types, one engine.
2
players to start
5–8
acts per case
live-generated cases
2
languages (auto)
1
solo dev
▶ PROMO · 60 SECONDS

See a night come together.

A short look at the product: a case generated from nothing, two players at the table, and the moment the accusation lands.

01 / PROBLEM

A murder-mystery night needs a group, prep, and a human host.

Scripted mystery kits are great — once you've bought one, scheduled six people, and read the host booklet for an hour. The format barely exists for two people on a weeknight, and once you've solved a script, it's spent.

→ 01 / PEOPLE

You need a full table.

Most mystery games fall apart below 4–6 players. Couples and remote pairs are left out.

→ 02 / A HOST

Someone has to run it.

A good session needs a game master who knows the truth, paces the reveals, and never breaks. That person can't really play.

→ 03 / REPLAY

One script, one solve.

Once you know the culprit, the box is dead. Fixed content doesn't replay.

02 / WHAT I BUILT

An AI game master that writes the case, plays the suspects, and runs the table.

Pick a script and the system generates a complete, self-consistent, locked case behind the scenes — truth, culprit, motive, timeline, evidence and red herrings — then runs it as a live multiplayer session.

→ HIDDEN CASE

Locked truth, every suspect framed.

For mystery scripts, every character — including the real players — gets a plausible motive and a secret. Only one is the real killer; the rest are deliberate misdirection. The truth is locked at generation and can't drift.

→ AUTONOMOUS NPCs

Suspects that lie and scheme.

AI characters act on their own goals: they accuse, defend, form alliances, and actively try to frame others — including you. They never speak for the real players, and they're influenced by what's actually said at the table.

→ REAL-TIME DUO

Two humans, one link.

Your friend clicks a link and joins instantly — no install, no signup. Private role info is isolated per player; public scene is shared and synced live.

→ VOICE + SCORING

Read aloud, then graded.

Optional neural TTS reads narration and each character in a distinct, gender-matched voice. At the end, every player gets a multi-metric scorecard on deduction, roleplay and key calls.

PRODUCT · THE LIVE TABLE

Mid-case: the suspects turn on you.

The shared scene streams to both players in real time; your private role and secret stay yours alone. AI suspects push their own agendas — here one of them is openly trying to frame you.

◗ MystNight ROOM · THE GLASSHOUSE MURDER LIVE ♪ VOICE ON ACT 3 / 7 · THE CONSERVATORY Rain ticks the glass roof. Margot lingers by the orchids, watching you a beat too long. A brass key lies where the body was found. CLUES FOUND · 3 / 4 THIS ACT ▸ BRASS KEY · ▸ TORN LETTER · ▸ ALIBI GAP YOUR ROLE · 真人 / REAL PLAYER Dr. Ellis Reed Botanist. Owed the victim money. SECRET · ONLY YOU SEE THIS You were in the greenhouse at 10 — but not for the reason they think. SUSPICION ON YOU · ▮▮▮▮▮▯▯▯ HIGH MARGOT VANE · SUSPECT (AI) "I saw Ellis by the greenhouse at ten. Ask him what he was really doing." — THE INSPECTOR TURNS TO YOU — YOU · DR. ELLIS REED "Examine the brass key for prints." INSPECTOR HOLT · HOST (AI) The key is warm — recently held. A monogram catches the light: not "E". Say or do something… ⚖ ACCUSE
03 / ENGINEERING

The hard part isn't a chatbot. It's making an LLM run a fair game.

→ STRUCTURED OUTPUT

JSON the game can trust.

Every turn returns strict JSON (narration, NPC lines, revealed evidence, private notes, act state) with schema enforcement, retry, and an OpenAI fallback when the primary model filters or truncates.

→ TRUTH INTEGRITY

The answer can't move.

The full case is generated once and stored server-side only; the host model is fed the secret file but is hard-blocked from leaking it, from spoon-feeding clues, and from impersonating real players (prompt + server-side filtering).

→ PACING ENGINE

Acts on a real clock.

5–8 AI-designed acts advance on a live timer (or host control), gated so you can only skip ahead once the act's key clue is actually found. Clues only surface on genuine investigation, never on autopilot.

→ SYNC + FALLBACK

Resilient multiplayer.

Supabase Realtime drives instant updates, with a polling fallback so invited (anonymous) players never desync — a bug I only caught by playing on two devices.

→ VOICE PIPELINE

Provider-agnostic TTS.

One endpoint, swappable between OpenAI and Azure neural voices by env flag, with per-character voice selection by gender and hash, a sequential playback queue, and storage caching so a line is never re-synthesized.

→ BILLING

Free to try, then credits.

Stripe credit packs for hosting, Google OAuth, a per-account credit ledger with webhook dedup, a free first game for every new account, and invited guests always free.

UNDER THE HOOD · CASE GENERATION

Before anyone joins, a whole truth is written — and locked.

Pick a script and the engine generates a complete, self-consistent case server-side: culprit, motive, timeline, evidence and deliberate red herrings. It's scored for solvability, then frozen — the host model is fed the secret file but hard-blocked from leaking it.

PIPELINE · GENERATE → REVIEW → LOCK (SERVER-SIDE, BEFORE PLAY) GENERATE FULL CASE · LLM STRICT JSON REVIEW SOLVABILITY SCORE RETRY IF WEAK 🔒 LOCK TRUTH FROZEN CAN'T DRIFT HOST MODEL GETS THE SECRET FILE — BUT IS HARD-BLOCKED FROM LEAKING IT — NO SPOON-FEEDING · NO IMPERSONATING PLAYERS case.locked.json · SERVER-ONLY · NEVER SENT TO CLIENTS { "culprit": "Margot Vane", "method": "digitalis in the nightcap", "motive": "the rewritten will", "time_of_death": "22:10", "suspects": [ { "name": "Dr. Ellis Reed", "guilty": false, "red_herring": "debt + greenhouse alibi gap" }, { "name": "Margot Vane", "guilty": "████", "secret": "████████████" ⟵ withheld from table { "name": "Inspector Holt", "guilty": false, "role": "host / pressure" } ], "acts": 7, "clue_gates": ["brass key","torn letter","monogram","confession"], }
04 / SHIPPED

Not a demo — a product with users, payments and a domain.

→ LIVE

mystnight.com

Custom domain, auto HTTPS, bilingual UI that auto-detects the browser language, link-preview cards, and a private live-analytics panel for the operator.

→ FROM 0 → 1

Whole loop, solo.

Design, full-stack build, LLM orchestration, voice, payments, auth, deploy, and growth — one person, end to end.

ENDGAME · REVEAL + SCORECARD

The accusation lands — then everyone gets graded.

When a player commits to an accusation, the locked truth is revealed and the case is walked back act by act. Each player receives a multi-metric scorecard on deduction, roleplay and the key calls they made.

CASE CLOSED · THE TRUTH The culprit was Margot Vane. Motive: the rewritten will. Method: digitalis in the nightcap, 22:10. The brass key was hers. ✓ SOLVED IN ACT 7 PLAYER 01 · DR. ELLIS REED (YOU) Score · 86 / 100 DEDUCTION89 ROLEPLAY82 KEY CALLS93 RED-HERRING RESIST75 VERDICT Read the monogram correctly and pivoted off your own alibi gap in time. Clean accuse. PLAYER 02 · MARGOT VANE Score · 71 / 100 DECEPTION92 ROLEPLAY86 COMPOSURE60 FRAME ATTEMPT48 VERDICT Nearly pinned it on Ellis — the warm key and the monogram gave the game away.