I Stored a Website in a Favicon

Tiny tab icon hides a whole site and the comments instantly went feral

TLDR: A developer proved a tiny browser tab icon can hold the contents of a simple web page, which is useless in practice but wildly entertaining. Commenters loved the absurdity, argued over better ways to do it, and quickly turned the cute trick into a privacy and security debate.

A programmer pulled off the kind of stunt that makes the internet clap, laugh, and briefly worry about civilization: he stuffed the contents of a tiny web page into a favicon — the little picture you see on a browser tab. The page itself wasn’t literally living there without help; it still needed a small bit of code to unpack the image. But the reveal was enough to send commenters straight into their favorite mode: equal parts impressed, competitive, and mildly alarmed.

The biggest mood in the room was basically, “This is ridiculous... and I love it.” One commenter begged for the decoder code, while also immediately jumping to the dark side and wondering how attackers might abuse images this way. Classic internet move: admire the magic trick, then ask how it could become a crime. Another person crashed in with a hilarious coincidence-flex, claiming they had just posted their own project about storing a stock portfolio in a URL and favicon, turning the thread into a tiny nerd turf war.

Then came the security crowd, because no weird browser trick stays wholesome for long. One warning pointed to favicon cache tracking — yes, that harmless tab icon has already been dragged into privacy drama before. And of course, there was the resident optimization guy asking: why bother hiding data in pixels when you could just stuff it into an SVG, a text-based image format, directly? Meanwhile, one dreamer skipped past all that and asked the only truly chaotic question: could this become a game? In other words, the comments turned a goofy experiment into a full-blown mix of applause, one-upmanship, paranoia, and meme-brained ambition.

Key Points

  • The article demonstrates storing a small HTML document inside a favicon by mapping payload bytes into the red, green, and blue channels of image pixels.
  • The encoding process adds a 4-byte length header before the HTML bytes so the decoder can determine where the payload ends.
  • The example payload is 208 bytes, or 212 bytes including the header, and fits into a 9×9 image with 239 bytes of capacity.
  • The browser-side decoding process uses JavaScript and the Canvas API to read favicon pixel data, reconstruct the byte array, and decode the original HTML.
  • The article states that the favicon does not contain a complete self-executing website, because a small bootstrap loader is still needed to decode and render the content.

Hottest takes

"Never thought that would be a way!!!" — superjose
"Is this timing coincidence?" — franciscop
"why not use a SVG favicon and directly store markup inside it" — Tepix
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.