A recent Lobste.rs digest brought an experiment that sounds like a joke: programmer Kevin Sosnierz rendered the full text of Herman Melville’s Moby-Dick as an animated GIF measuring 88 by 31 pixels. Into a button. The very kind that, in the late nineties and early 2000s, shouted everywhere: “Netscape Now!”, “Best viewed in…” and “Valid HTML 4.01”. The result is a 4.2-megabyte file with 12,565 frames, looping for more than nineteen hours — and all that time, Melville can be read inside a web ornament the size of a matchbox.
The experiment itself remained a curiosity in the digest, and unfairly so: it ran up against the limits of a format nearly thirty years old — and in doing so raised a question no one has really asked. Where did 88 and 31 come from at all? Why did a tiny advertising badge outlive both the browser wars that spawned it and the era when websites were hand-coded? The short answer is that it always had something to do. The long answer is this story.
The 88×31 size is not entirely aboveboard: it has no documentary “birth certificate,” and the Dutch site 88x31.nl, devoted entirely to the phenomenon, honestly lists three competing theories. The first blames GeoCities — the largest free host for homemade nineties webpages: every user was required to link back to the host, and the default banners for that link came in 88×31; since the original graphic was, in blogger yequari’s words, “widely agreed to be ugly,” users began drawing their own versions in the same size. She traced this branch back to a GeoCities FTP procedures page in an archived 1996 snapshot — with a button snippet right there in the instructions.
The second theory credits Netscape: the company, fighting for every browser installation, handed out a “Netscape Now!” button — and webmasters copied its dimensions. The third version is the most prosaic: 88×31 is the “Micro Bar” from the Interactive Advertising Bureau’s ad taxonomy, the little brother of the famous 468×60 full banner. The IAB standardized banner sizes so ad space could be traded like grain, and the miniature ended up in the same table.
Most likely, everyone is right at once: an advertising standard, a hosting requirement, and browser propaganda spent a decade breaking in the same size until it hardened. What came next is more interesting — because from a commercial standard, the button did something no media plan could have imagined: it became a language.
In the late nineties, Netscape and Microsoft were fighting for every browser on the planet, and the button became a cheap weapon: put up a “Best viewed in Netscape” badge — and your front line is ready. One MetaFilter user recalled: “in the mid-to-late nineties we did this with everything.” The size became a de facto unit of measurement — not “an 88 by 31 image,” but simply “a button.”
The sound of the war, though, was already protest against it. Against slogans like “best viewed in…,” that is, against the idea that “my site works best where you don’t need to be,” grew an entire “Viewable With Any Browser” campaign by Cari D. Burstein — with its own button, declaring not browser loyalty but independence from it. A textbook example of “Best viewed with any HTML browser” can be seen right in Sosnierz’s post.
What matters is that both sides of the war wrote their slogans on the very same badge. The button was small enough not to dominate a page, and large enough to fit a slogan of a few words — the perfect unit of agitation on a web where everything else cost dearly.
By 2002, buttons had become the background noise of the web: the orange “XML” for RSS feeds, the W3C validator icons many considered ugly. On October 22, 2002, Jeremy Hedley, author of the Antipixel blog, declared war on them: he disliked the orange XML button spreading everywhere — wrong font, crooked layout, more than four hundred bytes in weight. He redrew a set in strict 88×31 and posted it together with the Photoshop source files, accompanied by a paragraph that now reads like a manifesto:
If you want them, they're yours, gratis, no strings attached. You do not need to give me credit or provide a link back here or anything like that.
Literally: images that explicitly ask to be stolen. The farewell deserved a line of its own: “So, bye-bye little buttons. Go forth, multiply and, above all, have fun out there”. Seven months later, in May 2003, MetaFilter gathered the whole scene into a “Steal These Buttons” thread — by then, there was the gtmcknight.com collection with buttons for “almost everything,” generator scripts, and even GUI front ends for them, where someone who had never touched Photoshop could assemble a button.
This is where the format changed its nature. An advertising badge obligated to link to a sponsor became folklore copied for recognition: “I have a website too, and I made it by hand.” The economics of traffic gave way to the economics of belonging — and it was in this capacity that the button outlived everything that produced it.
There is most likely no secret meaning in the numbers. 88x31.nl notes only that the button is “small enough not to overpower the page, and large enough to remain noticeable.” Neither the IAB nor GeoCities published any rationale; crystallization happened empirically — the size proved convenient, and then no one dared touch it, because the entire ecosystem of generators and collections already measured itself against those numbers.
The ergonomics of the era agree with the choice. Monitors were 1024×768, and a button occupied around a third of a percent of the screen — dozens could fit in a footer without sacrifices by the cubic meter. The harshest constraints became style: tiny pixel fonts, palettes with only a handful of colors, files weighing hundreds of bytes. CRT monitors also forgave flaws: the screen blurred the pixels, and small text read more softly than it does on modern flat panels — yequari documented this as a historical fact, not nostalgia.
She also calculated the chief side effect of changing monitors. On a modern 1920×1080 display, the same button occupies only 0.13% of the screen’s pixels, versus 0.35% in the nineties. The button has become nearly three times smaller relative to the page, though its dimensions have not changed by a single pixel. The format did not become obsolete — the world around it did.
The format vanished from advertising directories: the very idea of “standard banner sizes” died along with the era of countable impressions. But the button did not die, because it had long since answered not to advertising but to people. A symptom of its resilience is Wikipedia itself: at the bottom of every page, a “Powered by MediaWiki” badge still hangs in precisely 88×31 — alongside the CC license badge. The format has not been abolished — it is the de facto standard for “Powered by.”
And in the 2020s, a full renaissance arrived. Neocities — GeoCities’ direct heir — and the “web revival” movement that grew around it brought back 88×31 as a mark of belonging to the hand-built web. Wikipedia records the return right in its article on badges: “a resurgence in the early 2020s through sites such as Neocities,” major collections. On neonaut’s Neocities page, badges are laid out in one unbroken strip across several screens.
Not everyone is celebrating. In 2023, yequari published a manifesto against the format: on modern screens, buttons are unreadable; in a “button wall” — a wall of solid badges — it is “hard to tell what each one looks like, let alone read the text,” while the flicker of animation is tiring. Her prescription is a move to 200×40, a size with its own banner pedigree (she herself adds the caveat: web veterans have already snorted disapprovingly). The proposal gained no traction: the revival consciously chooses archaism, and the ergonomic argument shatters against the simple fact that a button is not a utility, but a quotation.
And in this retirement, in 2024, Sosnierz asked his question. Every animated button he had seen flashed either to catch the eye or to cycle through a couple of words — so why not Moby-Dick? There were no technical barriers: he checked that GIF had no limit on its number of frames, while maximum frame resolution was 2¹⁶ × 2¹⁶, or 4295 megapixels. The standard allowed everything except readability.
The pipeline came from that time, those same nineties: the novel’s text from Project Gutenberg, stripped of its license, run through cat, tr, and fold — three POSIX utilities that join the book into one line and cut it into 22-character chunks. sed removed non-ASCII characters and separated chapters with blank lines. Then ImageMagick assembled the frames in the TomThumb font, whose glyphs fit into 3×5 pixels (6×4 with letter spacing): the button screen holds five lines of 22 characters — 110 characters per frame. The delay between frames is six seconds: “in my experience, that’s more comfortable to read.”
And then the format’s arithmetic showed itself in full. The novel — around 1.2 million characters — yielded 12,565 frames; the complete GIF weighs 4.2 megabytes and, by the author’s calculation, runs for more than nineteen hours without interruption. A button whose design assumed three words in a page footer became a scrolling marquee two work shifts long: a corner of the screen with Boston, harpooners, and the white whale, familiar to anyone who has ever squeezed a browser window down to its minimum size.
The trick is not pursuing efficiency — and the Lobste.rs comments calculated that immediately: chrismorgan worked out that storing text in frames costs 3.5 bytes per character, APNG is twice as bad, AVIF wins only by a little — “I don’t know whether I’m the victim or the hunter.” But bytes are not the point. Sosnierz was measuring something else: where a form nearly thirty years old runs out of room. It turns out to end not where anyone expected. Not at volume, nor at the legibility of a 3×5-pixel font — but at time: no one will spend nineteen hours paging through a novel in a button, yet that very pointlessness proves that the format has no limit, because it has long had nothing left to prove. Advertising needed responses; revival buttons need belonging; this one needs nothing. It simply loops in someone else’s footer on the web, page after page, and “Call me Ishmael” waits its six seconds on one of the first screens.