I Stored a Website in a Favicon

304 points · 107 comments on HN · read original →

Points and comments are a snapshot, not live.

A developer stored a small website's HTML inside a 9x9 favicon pixel grid.

The author encoded a 208-byte HTML payload into the RGB channels of a 9x9 PNG favicon (71 pixels used, 87% of 239-byte capacity). A JavaScript loader reads the favicon from a canvas, extracts pixel bytes, and reconstructs the page. The technique uses steganography: the browser interprets pixel values as colors, but the author writes UTF-8 text bytes directly into red, green, and blue channels. A 4-byte length header marks the payload end. The project is a proof-of-concept with no practical utility.

Alternative approaches include SVG favicons with embedded markup, PNG comment chunks (tEXt, zTXt, iTXt), and multi-resolution ICO files for larger capacity.

What commenters are saying

Commenters praised the creativity but flagged a known fingerprinting risk: favicon caching can persist across private browsing sessions, potentially enabling cross-profile tracking. Several suggested more practical alternatives, such as using SVG favicons with embedded markup or PNG comment chunks. One user noted that the aggressive, staccato writing style resembles LLM-generated content; others defended it as a deliberate minimalist style by a German author. A commenter linked a related project storing portfolio data in a URL and favicon.