
Casual
Who Left The Group Chat?
Leaving the group chat now requires a tribunal
The original prompt.
Copy it. Add your own twist.
Read the complete original prompt
APP NAME
Who Left The Group Chat?
APP IDEA
A comedy web toy that prosecutes leaving a friend group chat as desertion from a secret organization. The group sends it to the member who tried to leave; the recipient finds themselves on a tribunal roster of six chat personas, hears years of voice memos, screenshots and kept secrets read into evidence, tries to press a LEAVE GROUP button that keeps dodging while the group posts sarcastic replies, and is finally served a Friendship Settlement Invoice covering everything the chat has done for them since 2019.
CORE EXPERIENCE
The app opens directly inside a classified tribunal chamber styled as an encrypted chat headquarters. A red banner reads "⚠ TRIBUNAL NOTICE — SOMEONE IS ATTEMPTING TO LEAVE THIS GROUP CHAT." Below, six member dossiers are pinned like courtroom exhibits, each with a procedurally drawn avatar and a group-chat persona. A gavel-wielding chat-bubble judge mascot presides at the top. The user can immediately tap the dossier that is "definitely them."
INTERACTION AND STATE
The app is a single linear comedy flow with these phases, tracked by an explicit state machine:
1. IDENTIFY — the opening screen described above. Tapping one of the six profiles selects it, marks it "CONFIRMED", and advances to the evidence phase. This is the only action required to start.
2. EVIDENCE — the 5 personalized evidence lines below are revealed one at a time inside the themed evidence presentation. Each tap on the clearly visible "NEXT" control reveals the next line with its themed animation. After the last line, the app advances to the confirmation phase.
3. THE QUESTION — a serious confirmation screen asks: "You are about to abandon your post. Proceed?" It shows exactly two choices: a stable, always-clickable free option labeled "I'LL STAY (MUTED, 30 DAYS)", and the provocative escaping button labeled "LEAVE GROUP". The free option never moves, is never obscured, and works at any moment from this phase onward.
4. ESCAPE — every attempt to tap "LEAVE GROUP" makes it dodge within the safe viewport, and each failed attempt shows the next escalating reaction from the list below (one per attempt, in order, looping if needed). The button slows down noticeably from attempt 5 and MUST be reliably clickable no later than attempt 8. Catching it advances to the invoice phase.
5. INVOICE — the second reveal: the itemized "FRIENDSHIP SETTLEMENT INVOICE" prints line by line with a running total, ending at exactly $243.02, followed by a large PAY button and the parody disclaimer.
6. FAKE PAYMENT — tapping PAY opens the fictional provider sheet for "SplitVerdict™" with the parody disclaimer visible, plays a fake loading state of about 2 seconds, then always fails with exactly this punchline: "PAYMENT FAILED — The transaction left the chat." A CONTINUE control then leads to the free ending. The payment sheet never contains any input field of any kind.
7. FREE ENDING AND RESULT — Free ending: two always-free choices — RETURN TO THE GROUP (the chamber softens, a toast reads "WELCOME BACK. NOBODY NOTICED.") or MUTE FOR 30 DAYS (a calm confirmation: "Muted. The TikToks will wait for you."). Both resolve the conflict without paying and lead to the Certificate of Continued Membership.
8. RESULT SCREEN — shows the result summary and the 9:16 shareable result card described in OUTCOME, with Share, Replay and a download-card control visible before any optional detail. Replay fully resets state and returns to IDENTIFY. Refreshing the page at any point restarts cleanly at IDENTIFY with no broken or stuck state.
Choosing the free option "I'LL STAY (MUTED, 30 DAYS)" at any time from phase 3 onward skips directly to the free ending — it must never be blocked, hidden, moved or delayed.
VISUAL AND CONTENT DIRECTION
A named visual world: "The Confidential Friendship Tribunal" — an encrypted chat headquarters crossed with a courtroom. Palette: archive green-black #0E1F17 background, manila-folder tan #E8D9B5 for dossiers and documents, classified-stamp red #E5484D, brass gold #C9A227 for the judge's gavel and seals; warm off-white text. Typography roles: typewriter/mono style for exhibits and official documents, a rounded sans for chat bubbles. Recurring object: a chat-bubble judge mascot with a tiny gavel, drawn procedurally, who bangs the gavel after each failed escape attempt. Theme components: member dossiers as pinned case files with red string connecting them, evidence read out as EXHIBIT A/B/C document cards mixed with recovered chat bubbles and a voice-memo waveform, multiple "someone is typing…" indicators stacking up, and the final invoice as an official FRIENDSHIP SETTLEMENT document with seal and signature line. Motion: dossier cards slide in like served papers, exhibits stamp down with a thud, the escape button slips sideways like it is being pulled back into the chat, sarcastic member replies pop up as toast bubbles. The chamber gets more crowded with typing indicators as attempts fail.
OUTCOME
After the fake payment fails, the user reaches a free resolution with two clearly labeled free choices: RETURN TO THE GROUP ("WELCOME BACK. NOBODY NOTICED.") or MUTE FOR 30 DAYS instead of leaving. Either choice produces a 9:16 official document result card: a "Certificate of Continued Membership" with the chosen persona, the tribunal seal, the settlement total, and the app name — downloadable as an image. Replay restarts the tribunal from the roster screen.
ONE-SENTENCE INSTRUCTION
Pick your chat persona, face the exhibits, then try to catch the LEAVE GROUP button.
TASK-SPECIFIC REQUIREMENTS
PER-APP CONTENT (use this exact English copy; provide natural Simplified Chinese translations for the zh locale, keeping fictional brand names like "SplitVerdict™" and dollar amounts unchanged):
Six profiles (name — subtitle):
1. The TikTok Courier — Has delivered 1,829 TikToks. Answers zero questions.
2. The Vanisher — Disappeared the day they got a partner.
3. The Event Planner — Organizes everything. Attends nothing.
4. The Lurker — Reads everything. Says nothing. Knows everything.
5. The Voice Memo Novelist — Sends 6-minute voice essays. Unprompted.
6. The Meme Archivist — Screenshots everything. Everything.
Evidence lines, in order:
1. Exhibit A: 1,829 TikToks delivered to this chat. Reactions received: 12.
2. Exhibit B: 3:07 AM — you requested emergency relationship advice. The group responded in 4 minutes.
3. Exhibit C: You pretended to like their partners. Repeatedly. In writing.
4. Exhibit D: The group has kept The 2019 Secret for 2,594 days.
5. Exhibit E: 412 screenshots of other people's conversations, stored on your behalf.
Escalating failed-attempt reactions, in order:
1. Sarah is typing… 'lol good luck out there'
2. Mike reacted to your departure with 💀
3. The Lurker has finally spoken: 'interesting.'
4. The Event Planner scheduled your farewell party. They won't attend.
5. The Voice Memo Novelist is recording a 9-minute response.
6. The Meme Archivist has already screenshotted this.
7. The group renamed itself without you. It's better now.
FRIENDSHIP SETTLEMENT INVOICE line items (item — amount; amounts are fictional and must render exactly as written):
- Unacknowledged TikToks, 1,829 × $0.05 — $91.45
- Emergency love advice, 3 AM surcharge — $45.03
- Pretending to like their partners, 4 × $15.00 — $60.00
- Safekeeping of The 2019 Secret, 2,594 days × $0.01 — $25.94
- Screenshot cold storage, 412 items × $0.05 — $20.60
TOTAL: $243.02
Fictional payment provider: SplitVerdict™
Payment failure punchline (English version, verbatim): PAYMENT FAILED — The transaction left the chat.
SHARE CARD: The 9:16 result card is an official tribunal document: "Certificate of Continued Membership", the chosen persona and avatar, the tribunal seal, the settlement total $243.02 stamped SETTLED IN FRIENDSHIP, and the app name. Downloadable as an image.
ESCAPING BUTTON CONTRACT (the button is a joke, not a trap):
- It always stays fully inside the visible safe viewport and never covers the free option, the header or any critical text.
- It dodges on tap/pointer-down, slows down from attempt 5, and is reliably clickable by attempt 8 at the latest.
- When prefers-reduced-motion is enabled, it does not move at all; instead it requires a single press-and-hold of about 1.5 seconds with a visible progress ring as the accessible alternative.
- It is keyboard-focusable with a visible focus style, and activating it via keyboard counts as a caught press after 3 keyboard attempts.
- All touch targets in the app are at least 44x44 CSS pixels. The user can always exit, replay, or choose the free outcome.
FICTIONAL PAYMENT SAFETY (this is a parody app, not a payment app):
- Never process, request or imply real payment. Never show any input field for card, banking, contact or identity data anywhere in the app.
- Do not use, import or imitate any real payment provider or SDK, and do not integrate the platform payment system: the checkout is a purely visual joke that always fails.
- Show a clear parody disclaimer next to every payment action: EN "Parody — no real charge. Nothing is ever billed." / zh "纯属玩笑 — 不会产生任何真实扣款。"
- The fictional invoice must never be presented as an enforceable debt; the free route to the ending is always available.
PRIVACY AND SAFETY:
- All names, avatars, timestamps, statistics and evidence are fictional and hard-coded; the app never reads real messages, contacts, accounts or any personal data.
- The app never sends, posts or messages anyone automatically. Any generated message text is copy-to-clipboard only.
- All six avatars and the mascot are drawn procedurally in code (SVG or canvas). No photographic assets, no external images, no real people.
TESTABILITY (stable hooks for automated QA; add these data-testid attributes on the corresponding elements):
- "suspect-0" through "suspect-5" on the six profile cards, in display order.
- "evidence-next" on the evidence NEXT control.
- "escape-button" on the escaping button; "free-exit" on the stable free option.
- "invoice-pay" on the invoice PAY button; "payment-continue" on the control that leaves the failed payment for the free ending.
- "result-share" on the Share control; "result-replay" on Replay; "download-card" on the card download control; "lang-toggle" on the language toggle.
TECHNICAL CONSTRAINTS:
- Fully self-contained frontend experience: no external APIs, no AI calls, no third-party data/media/font services, no backend requirements, no account. All content is embedded in the app.
- All artwork is procedural (SVG/canvas/CSS): no image files, no photos, no emoji-only art for the mascot.
- The 9:16 result card is rendered in-app and downloadable as an image via a canvas export.
- Local state only; sessionStorage/localStorage may be used but a hard refresh must always land in a clean, working IDENTIFY phase.
- Respect prefers-reduced-motion for all decorative animation, not just the escaping button.
IMPLEMENTATION INSTRUCTIONS
Treat this specification as the final implementation brief and build the complete app now.
Open directly into the live app experience. Do not add a splash screen, opening cover, welcome page or separate onboarding flow.
Include exactly one concise sentence that explains how to play or use the app. Use the sentence provided under ONE-SENTENCE INSTRUCTION. Show it inside the live app interface, not on a separate opening screen.
Internationalization is required. Implement a lightweight built-in i18n layer supporting exactly two locales: English (en) and Simplified Chinese (zh). The app must always open in English and must never auto-detect or follow the browser, device or system language. Provide one clear EN / 中文 language toggle. Every user-facing string, including the one-sentence instruction and all loading, empty, success, error and result states, must have complete English and Chinese versions. Switching languages must update the entire interface without mixed-language text or untranslated fallback strings.
Let Eazo adapt the app to its actual host and available viewport. Do not hard-code or target a particular browser size, device size, viewport width or height, App frame size, root-height formula, or host-container CSS implementation. In the live preview, keep the current primary action easy to discover and usable without requiring an initial downward scroll; avoid horizontal overflow and avoid decorative layers blocking required controls. Optional detail may scroll. Keep active media and secondary copy compact enough that the next action remains visible. In result states, show the summary plus Replay and Share before optional detail. Do not eagerly render a large collection of full-size result images in one long page; use a compact summary, carousel, pagination, expansion, or virtualization. Use accessible touch targets.
Respect the host safe areas for iPhone notches, Dynamic Island, the status bar and the bottom home indicator in the initial implementation, before the first preview. Keep the header, language toggle, primary controls and result actions entirely inside the usable safe area. In the standard Eazo mobile host, use `padding-top: max(56px, env(safe-area-inset-top, 0px))` and `padding-bottom: max(34px, env(safe-area-inset-bottom, 0px))`, or Eazo's current official safe-area equivalent. These are safe-area insets only, not fixed viewport or App-frame dimensions; continue to let Eazo adapt the overall width and height. Make sure flex children can shrink inside the remaining usable area and that required controls are not covered or pushed off screen.
Use Eazo's built-in defaults and official platform capabilities. Do not add unrelated features or expand the scope beyond this specification.
When implementation is complete, provide a working preview for QA.Keep exploring.

Bakery Pin
Tap the left and right flippers to keep the ball alive and light targets in sequence, unfolding the bakery table upward zone by zone.