shipping/JOG — 03:41 GMT+7/48.3 °C CPU/v 07.0 · build 2026.05.12
lat −7.7956 · lon 110.3695/ntwk · online/open for saas, ai & web3 projects
←back to archiveworkdont-wake-the-cat
/ project no. 02gamefrontend
shipped · live · 2026
Don't Wake The Cat

Don't Wake The Cat.

— short description

a browser game with exactly one mechanic: type a full message while a cat sleeps on your keyboard. every keystroke risks waking it. wake it and it walks across the keys, scrambles your text, and sends the wreckage. shipped solo in about a week.

Play it ↗
browser game — live at dontwakethecat.com
~1 wk· from idea to shipped, live build5· cats, each a different difficulty curve~0kb· audio shipped — every sound is synthesized
rolesolo · design, engine, audio, copy
stacknext.js · react 19 · zustand · gsap · web audio api
2026~1 week · static export
shapeone mechanic, taken seriously
statusshipped · live · mit licensed
— 01

context.

a portfolio game with a single rule: don't wake the cat. the whole experience is one tension dial — a wake meter that rises with every keystroke and decays when you pause — wrapped in a relatable scene anyone with a cat recognizes instantly.

the constraint was self-imposed: about a week, one mechanic, no feature bloat. that meant the engine had to carry the fun on its own, because there was nothing else to hide behind.

— 02

the engine.

the game logic is a pure, framework-free state machine: keystrokes are classified, each adds a tuned amount to the wake meter, and the cat moves through deep-sleep → twitch → eye-crack → alert → triggered. decay, per-cat personality, and a first-run difficulty cap keep it learnable without a tutorial.

every run is seeded, so it's deterministic — which makes replays exact. share a run and the recipient watches the identical playback without re-simulating. all six sound cues are synthesized in the browser with the web audio api, so the game ships with essentially zero audio weight.

1mechanic — type without waking the cat. everything else serves it.
5cats with distinct noise/decay/threshold curves, from heavy sleeper to hair-trigger.
seededdeterministic runs — replays are exact playback, not re-simulation.
— approach

no audio files. no tutorial.

the wake meter is the entire game, so the tuning is the design: onboarding caps on the first run, a burst-drop reward for pausing, slower decay while the cat is alert. sound is synthesized live — a detuned-sine purr, a pitch-collapse jumpscare — and the build is a static export with no backend required to play.

Don't Wake The Cat
fig. 02
"one mechanic, taken seriously, beats five mechanics half-built."
— — the scope rule for the week
— outcome

what shipped.

a complete, live game: 5 playable cats, funbox modifiers, a daily seeded challenge, achievements (incl. a konami secret), deterministic replay + compose share urls, downloadable screenshot of your wrecked message, three themes, english + indonesian, and a stats heatmap of where players tend to wake the cat.

a production-quality demonstration that attention can be settled in public at the unit of the second. still my favorite project of 2024.
— on the record
— team

built solo.

devrangga hazza mahiswaradesign · engine · audio · copy2026solo · ~1 week
— screenshots

how it's built.

a small game with a surprisingly deliberate core. notes on the engine and the sound.

gameplay
the loop.type the body before the wake meter hits 100.
state machine
states.
/ deep-sleep → twitch → eye-crack → alert → triggered.
synthesized audio
audio.
/ six cues, all web audio, ~0kb shipped.
share artifact
share.
/ your wrecked message → a screenshot worth posting.
— responsive

a keyboard game, honestly framed.

the mechanic needs a physical keyboard, so touch devices get an honest banner instead of a broken experience — the share artifacts and replays still work everywhere.

title screen
end screen
— the wrecked message, in context.
cat select
Mizaan
/ up next — proving zakat reached its recipientsolana · next.js

Mizaan.

on-chain transparency for zakat: a three-signature chain from donor to recipient, live on solana.

open next case ↗