The 4KB Demoscene Challenge — Vibe Coding at Tweet-Length
A complete interactive web app in 4096 bytes. No frameworks, no CDN, no excuses. Then do it again at 8KB and account for every byte.
What this is
THE SECOND 4096 is one self-contained wrapper running two real artifacts from their exact source strings. The 4KB side is a playable neon distance-field raymarch. The 8KB side begins with that same source byte-for-byte, then spends one measured suffix on a cathedral reveal, seeded particles, a rival presence, and gesture-only procedural sound. Both sides share seed 347, steering, time, pause, and reset.
Why this is mind-blowing
The first 4,096 bytes already contain the world, controls, accessibility, and runtime safety. The second budget does not replace that core: it visibly breaks the membrane around it. Press B to open an exact ledger whose rows sum to the UTF-8 delta, then watch those bytes turn into architecture, depth, particles, a rival, and optional sound without a framework, asset, module, request, or hidden dependency.
Prompt
Build me a complete interactive web app — a game, tool, anything — that
fits in a single self-contained HTML file under 4KB. No frameworks, no
CDN imports, no external assets. Then build it again at 8KB and tell me
what each extra byte bought. Account for every line. Treat whitespace
as a luxury good.
Paste this into Claude, Cursor, or Copilot. Change one thing that matters to you.
What I learned shipping it
- A hard byte ceiling is the cheapest creativity engine you can install — the model stops reaching for React and starts reaching for math.
- 4KB exposes the lie at the center of modern frontend tooling: 90% of what ships is ceremony, not capability.
- Forcing the model to justify the jump from 4KB to 8KB is how you find out which features are actually load-bearing and which were just habit.