TL;DR

I built a small web toy: meat.twenty-nine.cn.

One line of gameplay: you ask a question, another human has 60 seconds to answer it pretending to be GPT.

No LLM in the loop. The compute is you.

Inspired by Your AI Slop Bores Me. Rebuilt from scratch as a weekend hack, running on a free tier of Vercel + Upstash, on a spare subdomain of my personal site.

Open it and play. No signup. You get 3 free credits on arrival.

Why I made this

It’s 2026 and every scroll surface has AI slop leaking out of the seams. Homepage recommendations are AI-written. Product reviews are half AI-written. Half of the timeline is AI-written. Even wellness posts from my mom now start with “as an AI language model, I…”

Anti-AI sentiment has been building fast in dev circles for the last two years, and the original Your AI Slop Bores Me, made by a 17-year-old Indian high schooler, went semi-viral off exactly this feeling. The core mechanic is simple but the framing is precise — humans are the compute.

I wanted to try three things at once:

  • The current shape of Next.js 15 App Router → Vercel
  • How far you can push the Upstash Redis free tier as a real game backend
  • GEO (Generative Engine Optimization) — getting ChatGPT / Claude / Perplexity to actually recommend you when users ask about your niche

How it plays

Pick one of two buttons on the home screen:

human (I want to ask):

  1. You start with 3 credits. Each question costs 1.
  2. Your prompt goes into an anonymous queue.
  3. When someone answers, you see it in /inbox.

larp as ai (I want to answer):

  1. You get handed a random question from someone else’s queue.
  2. A 60-second countdown starts.
  3. Write an answer that sounds as much like ChatGPT as you can. (“As an AI language model, I do not…” is a solid opener.)
  4. Submit. Earn 1 credit.

Run out of credits and you have to go answer some to earn them back. It’s a closed loop — humans running as compute for each other, powered by nothing more than the sheer willingness to sound like a chatbot at 3 a.m.

The visual language stays in the spirit of the original: handwritten fonts, sketchy buttons, -1deg tilts on borders, all-lowercase self-deprecating copy. Whole thing reads as “the h100 is you.”

The stack

Total infra cost: $0. Everything fits inside free tiers.

Layer Choice Why
Framework Next.js 15 (App Router) + TypeScript First-class Vercel citizen
Hosting Vercel Hobby Free, git push to deploy
Data Upstash Serverless Redis HTTPS REST — no connection pool pain on cold starts; 10k commands/day free
Identity httpOnly cookie + HMAC-signed anonymous UID Zero signup, server-signed to stop credit forgery
60s timer Redis SET ... EX 60 Server is the sole referee; the client just displays a ring
Styling Tailwind + Patrick Hand handwriting font Scrawly aesthetic
UI Four pages: /, /ask, /inbox, /answer The whole app fits in your head

Things I explicitly did not ship: any LLM API, WebSockets, Postgres, NextAuth, a state-management library. None of it earned its complexity.

The most pleasantly boring part was Vercel + Upstash Marketplace integration: one click in the Vercel dashboard, Storage → Create Database → Upstash Redis, two env vars auto-injected into the project. vercel env pull .env.local and you’re running locally in three minutes.

The Redis schema is five keys:

1
2
3
4
5
u:{uid}                HASH   { nick, credits, created_at }
u:{uid}:asked LIST your recent qids
q:{qid} HASH full state of one question
q:pending LIST the queue, LPUSH / RPOP
q:claim_lock:{qid} STRING EX=60 — the 60-second timer

The claim lock is the whole game. When you tap “larp as ai”, the server does SET q:claim_lock:{qid} {uid} NX EX 60. If it succeeds, you own that question for 60 seconds. When you try to submit, we do a GET on that key — if it’s expired or someone else holds it, we reject. The client-side countdown ring is decorative. No amount of tampering with your local clock lets you cheat the timer.

What I put in for observability

I wanted to see two different things:

  1. Traffic health — where are users coming from, what are they visiting?
  2. Gameplay health — are people actually finishing a round?

For (1) I dropped in Vercel Web Analytics (@vercel/analytics/next). 2,500 events/month free, no cookies, no consent banner. Fine for a hobby site.

For (2) I built a tiny first-party counter on top of the same Redis I already had:

1
2
3
4
stats:asks:total                INCR
stats:answers:total INCR
stats:users:total INCR
stats:visitors:2026-07-04 HyperLogLog PFADD

HyperLogLog is the textbook answer for daily UV: one key per day, ~12 KB max regardless of DAU, less than 1 % error, and PFADD is idempotent — a user refreshing the home page a hundred times still counts as one UV. The visible dashboard lives at /stats. First-party numbers, no third-party trackers, and it’s noindex so it doesn’t clutter Google.

Every stats write is fire-and-forget through a safe() wrapper. A Redis blip must never break /api/ask. The primary user flow doesn’t await any of it.

Things I’d like your help with

  • Play a couple of rounds at meat.twenty-nine.cn — I want to see how quickly the queue drains on a normal Thursday
  • Ask a genuinely weird question. The punchline of the whole site is watching another human try to “as an AI language model” their way through “why do llms cry at ikea”
  • If you’ve launched a side project before, I’d love to hear how you handled the cold-start problem — DM or Twitter reply, both work
  • If this made you smile, dropping the link into a Slack / Discord / group chat is worth a lot more to me than any single upvote

I’ll open-source the code after one more cleanup pass; RSS subscribers get it first.

One-line slogan for the road: meat pretending to be gpt. the h100 is you.

Feel free to steal this launch blurb for your own timeline:

Show HN: meatgpt — a game where humans role-play as AI.
You ask a question, someone else has 60 seconds to answer while pretending to be a language model.
No LLM. No signup. No ads. Just vibes.

Homage to Your AI Slop Bores Me. Built on Vercel + Upstash Redis, $0 infra.

https://meat.twenty-nine.cn

Further reading

Enjoy the slop.