Draw apps with Simple Icons instead of fetched favicons

The favicon service was wrong as often as it was right: a sign-in page's
icon for anything behind a login, nothing at all for a private host, and
both answers cached past any way of asking again. Refreshing could not
fix it, because the staleness was not local. Now every mark is.

Each app is its brand glyph in white on a round tile, coloured from
Tailwind's 500s by hashing the host - you find things by their colour, so
one that moved every launch would be worse than none. A host with no
glyph gets its initial in the same tile.

Matching tries the registrable name first, since a self-hosted tool is
nearly always on a subdomain of its vendor - aputure.odoo.com is Odoo,
not Aputure. A short table covers what a domain cannot answer, which is
most of Google.

The build reduces Simple Icons' 15MB of SVGs to one 4.5MB map in public/,
fetched once rather than parsed into the bundle at every start; the
bundle stays at 233KB. It is generated on every build, so never committed
and never stale.

Traffic lights are offset to sit inside the window margin rather than
crowding its edge.
This commit is contained in:
2026-09-01 14:45:41 +02:00
parent 1b6dabab0a
commit ada18d54ae
16 changed files with 251 additions and 76 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ A desktop browser for one thing only: the web tools you work in. A left nav list
clicking one shows it, and links between them navigate inside the app. Everything else
opens in your real browser.
Tauri 2 · Rust · React 19 · Tailwind CSS 4 · macOS
Tauri 2 · Rust · React 19 · Tailwind CSS 4 · Simple Icons · macOS
There is no address bar, no tab strip, and no way to reach a site that is not on the list.
That is the point.