The Smallest Browser Game Ever Made

What’s the smallest browser game ever made? Not “small” in the casual sense — small in bytes. There’s a subculture of programmers who treat code size as a creative constraint, the way poets treat meter. The smallest browser game in serious circulation fits in fewer than 256 bytes of JavaScript. The most-cited contests cap entries at 1024 bytes or 13 kilobytes. The results are surprising, occasionally beautiful, and a reminder that “playable” doesn’t require megabytes.
Key takeaways
- JS1k was a long-running contest that capped entries at 1024 bytes of JavaScript and produced hundreds of playable games and demos.
- Js13kGames raised the ceiling to 13 kilobytes (zipped) and is still running annually.
- Sub-256-byte playable games exist — including a working Snake clone that fits in roughly 230 bytes.
- Single-tweet games (280 characters) became a brief social media trend around 2017.
- The smallest playable browser game is a moving target — code golfers keep finding new ways to compress.
What “small” means in browser games
There are two ways to measure a browser game’s size: the source code that runs in the page, and the total payload (HTML wrapper, assets, scripts). Code-golfing contests usually measure source bytes — the raw JavaScript or HTML the player loads. Asset-heavy games balloon their totals with images and audio; code-golf games render everything procedurally, drawing graphics from math instead of loading files.
The smallest browser game in circulation depends on which yardstick you use. By the strictest measure — playable JavaScript with no external assets — sub-256-byte entries exist. By the looser “zipped bundle” measure, the Js13kGames contest accepts entries up to 13,312 bytes and has hosted thousands of complete games.
JS1k: the 1024-byte contest
JS1k was founded by Peter van der Zee in 2010 and ran annually until 2019. The rules were strict: a single JavaScript program of at most 1024 bytes, rendered into a fixed HTML shim provided by the contest. Entries could draw to a Canvas, play sound, take input — anything the browser allowed — but the source had to fit in a kilobyte.
The contest produced an astonishing range of work. Racing games, platformers, 3D demos, music visualizers, and procedural art pieces all appeared in the archives. Notable entries included tiny implementations of Pong, Breakout, Snake, and Tetris that fit comfortably inside the limit with room to spare for visual effects.
JS1k entries leaned on JavaScript’s expressive shortcuts — implicit globals, terse property access, abuse of the comma operator, encoding lookup tables as strings. Reading JS1k source is like reading hand-tuned assembly: every byte is paid for, and every character has a purpose.
Js13kGames: 13 kilobytes, August every year
Andrzej Mazur founded Js13kGames in 2012 as a more accessible alternative to JS1k. The size limit is 13,312 bytes (13 kilobytes), measured as a zipped bundle including HTML, CSS, JavaScript, and any assets. That’s still tiny by modern web standards — a single PNG often exceeds it — but it allows for actual game design rather than pure code golf.
The contest runs each August into September with a theme announced at the start. Past themes have included “back,” “lost,” “404,” “offline,” and “death.” Entries are judged across categories including gameplay, theme, audio, innovation, and accessibility. The archive runs into the thousands and is publicly browsable.
Js13kGames has produced complete platformers, twin-stick shooters, roguelikes, and puzzle games — all under 13 kilobytes. Many entries include procedural audio (generated at runtime from math, not loaded as MP3s), procedural graphics, and clever compression techniques like packing level data into Unicode strings.
Sub-256-byte games
Below the JS1k limit lives an even more extreme subculture. Code golfers on platforms like Code Golf Stack Exchange and dedicated demoscene boards have produced complete playable games in fewer than 256 bytes of JavaScript.
A widely circulated 230-byte Snake clone uses Canvas, accepts keyboard input, handles collision, and renders a working game loop. A sub-200-byte Pong has been demonstrated. There are bytes-only Conway’s Game of Life implementations, 99-byte particle simulations, and dozens of pieces of generative art that respond to mouse input in ways that arguably qualify as games.
At these sizes, code stops looking like code. Variables become single letters. Whitespace disappears. Logic is folded into single expressions chained with commas. The line between “program” and “encoded message” blurs.
Single-tweet games
Around 2017, when Twitter raised its character limit to 280, a brief trend emerged of “tweet-cart” games — playable games whose source code fit in a single tweet. Some were JavaScript demos. Others used PICO-8, a fantasy console designed for ultra-compact games, where 280 characters of Lua-like code can produce surprisingly rich output.
Tweet-cart games typically rendered to a tiny canvas, used procedural everything, and traded depth for compactness. The genre persists today as a creative exercise rather than a serious distribution format.
The demoscene angle
Tiny browser games sit at the intersection of game design and the demoscene — the decades-old subculture that produces visual and audio demos under tight size constraints. Demoscene productions famously include the 96-kilobyte first-person shooter .kkrieger, which renders a complete 3D shooter with procedural everything. The browser equivalents inherit that aesthetic: math instead of assets, code instead of content.
The smallest browser games are not commercial products. They’re craft. The goal isn’t to ship something a million people will play — it’s to demonstrate that something playable can exist in a space most developers would consider impossibly small.
How small can a “real” game get?
It depends on what you call a game. If “game” means “has input, has state, has a win or lose condition,” sub-100-byte JavaScript entries qualify. A working “click the moving dot” game can be expressed in dozens of bytes. A working tic-tac-toe is harder but achievable in a few hundred bytes.
If “game” means “has graphics, audio, multiple levels, and a recognizable genre identity” — the answer creeps into the low single-digit kilobytes. Js13kGames winners regularly clear that bar comfortably.
Why it matters
Size-constrained game development teaches lessons that scale up to normal game development. Procedural content generation. Algorithmic compression. The discipline of treating bytes as a budget. Many web developers who pass through Js13kGames carry those habits forward into mainstream work where loading times still matter.
There’s also a preservation argument. A 1-kilobyte game is trivial to archive. It will run on every browser for the foreseeable future. The smallest browser games are unusually durable — they’re below the size where bit rot or dependency rot can break them. The demoscene’s preservation tradition applies just as well here.
Playing tiny games today
The JS1k archive is hosted at js1k.com (mirrored on archive.org for posterity) and remains browsable. The Js13kGames archive is at js13kgames.com and includes every entry from every year. Both run in any modern browser without plugins.
For a different kind of minimalist browser game — one that’s not officially tiny but feels that way — the Chrome Dino game embedded at the homepage runs offline in any browser, hits the gameplay loop in under a kilobyte of meaningful logic, and proves once again that small can be sticky. For more games stripped to essentials, see our roundup of games that work without graphics.
Frequently asked questions
What is JS1k?
JS1k was a code-golfing contest founded by Peter van der Zee in 2010 that accepted JavaScript programs up to 1024 bytes. It ran annually until 2019 and produced hundreds of playable browser games and visual demos as archived entries.
What is Js13kGames?
Js13kGames is an annual contest founded by Andrzej Mazur in 2012. Entries are HTML5 games packaged into a zipped bundle no larger than 13,312 bytes. The contest runs from August into September with a theme announced at the start.
How small can a browser game be?
Sub-256-byte playable JavaScript games exist, including working Snake and Pong clones around 200 bytes. With clever code golfing, games as small as 100 bytes have been demonstrated for very simple genres.
Are tiny browser games actually fun?
Some are. The Js13kGames archives contain complete platformers and puzzle games that play well by ordinary standards. Sub-1KB entries are more about technical achievement than gameplay depth, but many JS1k entries are genuinely playable.
Where can I play these tiny games?
The JS1k archive at js1k.com and the Js13kGames archive at js13kgames.com both host complete browsable collections. Most entries run in any modern browser with no setup.
The bottom line
The smallest browser game ever made is a moving target — every contest brings new entries that compress further, generate more from less, and surprise people who assumed games needed megabytes. The cultural value of the work is real even if the audience is small. Bytes are a creative constraint, and the people who treat them that way produce some of the most interesting code on the web.








