The entire web page in a 32×32 pixel icon.

Write a page. We compress it and write the bytes into the pixels of a PNG. A 40-line loader unpacks it from the tab icon. No server, no build step.

Compose
Links
Encode

Smallest icon that fits

AES-GCM, derived with PBKDF2. Visitors are prompted before the page unpacks.

Output
Nothing to preview yet.
Actual size in a browser tab

Put favicon.png and index.html in the same folder. Any static host works.

Host it
Host it
Unpack any favicon
Drop a PNG made with favicon.website. Decoding happens locally in your browser.
Drop a PNG made with favicon.website. Decoding happens locally in your browser.

How it works

  1. deflate(html) · AES-GCM?

    Your HTML is deflated and, optionally, encrypted.

  2. FW · v1 · flags · len · crc32 → RGB, α=255

    Header + bytes are written into RGB. Alpha stays 255 so every browser reads the exact bytes back.

  3. getImageData → inflate → document.write

    The host page ships a tiny loader that reads the icon pixels through Canvas and rewrites the document.