WBTI: MBTI for wage workers
TL;DR
WBTI · 打工人格测试 is a Chinese-audience meme personality test for 打工人 (“wage workers”). 30 questions across 15 workplace dimensions sort you into one of 28 public result types — plus two hidden Easter-egg branches you only hit if your answers line up just right. Every result ships with a shareable, QR-coded poster rendered on the Cloudflare edge.
Why I built it
MBTI tells you who you want to be. WBTI tells you what the company turned you into. The tagline writes itself, and the taxonomy basically does too — we’ve all worked with a 卷王 (the Grinder), a 躺平大师 (the Lie-Flatter), and a 人形摆件 (the Office Ornament). SBTI had already shown that a meme-forward MBTI riff can travel on WeChat and 小红书 if the posters are good enough to screenshot; the WBTI framing was just waiting for somebody to ship it.
What it is
A single-page Vite app with three routes that matter: Home, Quiz, Result. The quiz is anonymous, no login, runs end-to-end in about three minutes. Your result is a full-bleed poster with your type’s illustration, your 15-dimension level bars, a one-line cross-read with an adjacent type, and a QR code that deep-links back to /types/{CODE} for anyone you share it with. 中文 and English, toggleable.
Disclaimer on the landing page: 本测试仅供娱乐,不构成心理学诊断、面试建议、或人生判决书。
How it works
The stack is aggressively boring by design: all-TypeScript, all-Cloudflare, all static until it has to be otherwise. No Python, no separate backend, no LLM. Three decisions are worth calling out at a product level.
Scoring runs in the browser. Your answers never leave the device unless you explicitly share the result. That keeps the test anonymous by default, keeps the server bill near zero, and makes result URLs trivially cache-friendly.
Question order is shuffled but reproducible. Two friends taking the test shouldn’t see questions in the same order (anchoring bias is real), but if one copies a result URL to the other, the exact sequence has to replay. A session seed in the URL seeds the shuffle, so the link is the quiz state — no server round-trip needed to reconstruct it.
Posters render on the edge. Each result has a shareable 1080×1350 poster with your type illustration, dimension bars, and a QR footer back to the quiz. These are rendered on demand by a Cloudflare worker and cached at the edge, keyed on a per-deploy build id so they invalidate cleanly without manual purges.
What I learned
The biggest surprise was realizing the app is mostly scaffolding around a few content files — questions, types, and “cross-reads” between adjacent types. Once the scoring and poster rendering are stable, every subsequent improvement is a content edit, not a code change. That inversion wasn’t accidental; it’s the entire point of shipping this. Most product work after launch is tweaking copy with zero redeploy risk.
The second lesson: the boring Cloudflare stack punches well above its weight for small projects. Zero-config SQLite on the edge, first-class bot protection, and SVG-on-the-edge rendering that handles Chinese glyphs correctly — all without juggling multiple providers. Picking “whatever’s boring and close to the browser” saved a lot of time I’d have otherwise spent on infrastructure.
What’s next
A short list of ideas queued up: QR share-tracking so I can see which types actually go viral, a rarity-percentile badge on the result, and a “recommend this to your boss” share variant. The hidden-branch machinery is already in place for adding more Easter-egg types when the mood strikes.
Try it at wbtilab.xyz. It’s anonymous, free, and — per the disclaimer — legally not a life sentence.