Minimal Programming Projects

I seem to have an interest in programming challenges that involve keeping the file size small.

The 5k

Several years ago, there was a contest called The 5k that challenged web designers to build web pages that took up a total of 5 kilobytes (5,120 bytes) or less. Unfortunately, the contest stopped running somewhat unexpectedly, and of the projects I developed for it, the Brainfuck Interpreter is the only one I was actually able to submit.

Brainfuck Interpreter
A JavaScript interpreter for Brainfuck, a minimal programming language with only eight instructions.
Chess-/Checkerboard Display
Displays the state of a game of chess or checkers.
Advent Calendar
Shows and hides tiny pictures that are (mostly) related to the Christmas season.

Another project that I didn't get to enter was revived and became my Robot & Human webcomic when NeoCities was launched.

10K Apart

An Event Apart ran a competition called 10K Apart in 2016 that was a spiritual successor to the original 5K contest. This one allowed server-side code of any size, as long as the site delivered an initial usable page in 10 kilobytes or less.

A web site where you can solve cryptograms. The database contains about 150 puzzles of varying lengths and difficulties. See the GitHub repository for more information. This entry earned an honorable mention! is a web host that gives you your own subdomain but only one kilobyte of disk space.

Block painter
This miniature tool draws blocks on the page according to the URL parameters. When no parameters are sent, it shows an editor. I actually have a GitHub repository for this one, which includes some instructions for the editor as well as some example drawings. And here are a few more drawings:
This 14-line poem by Percy Bysshe Shelley takes up over 600 bytes just by itself.


The JS1k is an annual competition in which coders submit up to one kilobyte of JavaScript code. You get all the HTML on the page, plus some basic JS, for free.

Trains are canvases
Entered in 2015; the theme was "hype train". This entry uses the HTML5 canvas element to display arbitrary text (lowercase letters only, due to the size restriction) in graffiti-style lettering.