From 66cd651a1473619070fe1aaee65b760891cc179a Mon Sep 17 00:00:00 2001 From: Hannah Casey <61227037+hanaCasey@users.noreply.github.com> Date: Mon, 17 Aug 2026 12:28:33 +0000 Subject: [PATCH 1/2] fix(frontend): serve a properly sized apple-touch-icon Both icon links pointed at static/favicon.png, which is 32x32. That file is right for a browser tab, but `apple-touch-icon` is what iMessage, Safari, Slack and most other link-unfurl clients read for the small site icon on a preview card, and Apple asks for at least 180x180 there. At 32x32 those clients either upscale it to a blur or drop it outright, which is what "the favicon is not showing up properly in social previews" was. Adds a 180x180 apple-touch-icon.png rendered from the vector mark in static/logos/sdsc.svg (square viewBox centred on the mark's bounding box, so the glyph keeps its aspect ratio and gains a small inset that iOS's rounded-corner mask will not crowd), and points the link at it with an explicit `sizes`. Transparent background, matching favicon.png. The 32x32 `rel="icon"` tag is unchanged. --- components/frontend/src/app.html | 8 +++++++- components/frontend/static/apple-touch-icon.png | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 components/frontend/static/apple-touch-icon.png diff --git a/components/frontend/src/app.html b/components/frontend/src/app.html index 0e1ee689..176fbc20 100644 --- a/components/frontend/src/app.html +++ b/components/frontend/src/app.html @@ -8,7 +8,13 @@ sizes="32x32" href="%sveltekit.assets%/favicon.png" /> - + + diff --git a/components/frontend/static/apple-touch-icon.png b/components/frontend/static/apple-touch-icon.png new file mode 100644 index 00000000..5502aad3 --- /dev/null +++ b/components/frontend/static/apple-touch-icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a412dc8336b7e02d7014048bb438f74db36cf91144347a984c6abbc22e33ef45 +size 7876 From 37f3401f1031f657a1394832097d0cbce0ad043e Mon Sep 17 00:00:00 2001 From: Hannah Casey <61227037+hanaCasey@users.noreply.github.com> Date: Mon, 17 Aug 2026 12:47:25 +0000 Subject: [PATCH 2/2] fix(frontend): add favicon.ico for crawlers that fetch it by convention MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Shared links rendered a broken-image glyph where the site icon belongs in Slack's preview card. Slack's unfurler — like several other crawlers and some browsers — requests /favicon.ico at the site root by hard-coded convention and never reads at all, and static/ had no .ico, so that request 404'd. This is separate from the apple-touch-icon sizing in the previous commit: Slack does not consume apple-touch-icon. Not an auth-guard problem, despite /favicon.ico being absent from PUBLIC_ROUTE_PATTERNS: static assets are served ahead of hooks.server.ts, which favicon.png and og-default.jpg already demonstrate by loading on unauthenticated pages. It was a plain missing file. Adds a multi-resolution favicon.ico (16, 32 and 48 px sub-images, 32bpp with alpha) rendered from the same vector mark and the same square crop as apple-touch-icon.png, so every icon surface shows identical framing. Also declares it in app.html for completeness, without a type or sizes so the existing, more specific 32x32 PNG still wins in browsers that support it. --- components/frontend/src/app.html | 5 +++++ components/frontend/static/favicon.ico | 3 +++ 2 files changed, 8 insertions(+) create mode 100644 components/frontend/static/favicon.ico diff --git a/components/frontend/src/app.html b/components/frontend/src/app.html index 176fbc20..43a950d7 100644 --- a/components/frontend/src/app.html +++ b/components/frontend/src/app.html @@ -2,6 +2,11 @@ + +