[object Object]

← back to CelebritySignatures

yoloforever C3: social-share polish — OG + Twitter summary_large_image meta on all 4 pages (per-page title/desc, og:image = signature-wall share card built in Photoshop/PIL from the artists collage + wordmark) so shared score links unfurl richly; favicon (signature-ink glyph) + /favicon.ico route → kills the last console 404 fleet-wide. Verified: favicon 200, OG on all pages, 0 console errors (TK-10181)

d017b3d06968719c7da0718e95f9d8d9f282675d · 2026-08-03 16:13:10 -0700 · Steve Abrams

Files touched

Diff

commit d017b3d06968719c7da0718e95f9d8d9f282675d
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Mon Aug 3 16:13:10 2026 -0700

    yoloforever C3: social-share polish — OG + Twitter summary_large_image meta on all 4 pages (per-page title/desc, og:image = signature-wall share card built in Photoshop/PIL from the artists collage + wordmark) so shared score links unfurl richly; favicon (signature-ink glyph) + /favicon.ico route → kills the last console 404 fleet-wide. Verified: favicon 200, OG on all pages, 0 console errors (TK-10181)
---
 public/assets/favicon-32.png | Bin 0 -> 1412 bytes
 public/assets/favicon.png    | Bin 0 -> 429 bytes
 public/assets/og-share.jpg   | Bin 0 -> 155732 bytes
 public/game.html             |  11 +++++++++++
 public/index.html            |  11 +++++++++++
 public/murals.html           |  11 +++++++++++
 public/upload-signature.html |  11 +++++++++++
 server.js                    |   1 +
 8 files changed, 45 insertions(+)

diff --git a/public/assets/favicon-32.png b/public/assets/favicon-32.png
new file mode 100644
index 0000000..e55c963
Binary files /dev/null and b/public/assets/favicon-32.png differ
diff --git a/public/assets/favicon.png b/public/assets/favicon.png
new file mode 100644
index 0000000..53e8e98
Binary files /dev/null and b/public/assets/favicon.png differ
diff --git a/public/assets/og-share.jpg b/public/assets/og-share.jpg
new file mode 100644
index 0000000..731e9f5
Binary files /dev/null and b/public/assets/og-share.jpg differ
diff --git a/public/game.html b/public/game.html
index 5727384..78aead8 100644
--- a/public/game.html
+++ b/public/game.html
@@ -107,6 +107,17 @@
 <!-- Google Analytics 4 (G-2HEVP6TD0J) -->
 <script async src="https://www.googletagmanager.com/gtag/js?id=G-2HEVP6TD0J"></script>
 <script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-2HEVP6TD0J');</script>
+<link rel="icon" type="image/png" href="/assets/favicon.png">
+<meta property="og:type" content="website">
+<meta property="og:site_name" content="Celebrity Signatures">
+<meta property="og:title" content="The Signature Games — how well do you know history’s hands?">
+<meta property="og:description" content="Six games: name the artist, name the painting, spot the earlier signature, and a 5-second Lightning Round. Play free and climb the leaderboard.">
+<meta property="og:url" content="https://celebsignatures.com/game">
+<meta property="og:image" content="https://celebsignatures.com/assets/og-share.jpg">
+<meta name="twitter:card" content="summary_large_image">
+<meta name="twitter:title" content="The Signature Games — how well do you know history’s hands?">
+<meta name="twitter:description" content="Six games: name the artist, name the painting, spot the earlier signature, and a 5-second Lightning Round. Play free and climb the leaderboard.">
+<meta name="twitter:image" content="https://celebsignatures.com/assets/og-share.jpg">
 </head>
 <body>
 <div class="masthead">
diff --git a/public/index.html b/public/index.html
index 66691f3..b039005 100644
--- a/public/index.html
+++ b/public/index.html
@@ -239,6 +239,17 @@
 <!-- Google Analytics 4 (G-2HEVP6TD0J) -->
 <script async src="https://www.googletagmanager.com/gtag/js?id=G-2HEVP6TD0J"></script>
 <script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-2HEVP6TD0J');</script>
+<link rel="icon" type="image/png" href="/assets/favicon.png">
+<meta property="og:type" content="website">
+<meta property="og:site_name" content="Celebrity Signatures">
+<meta property="og:title" content="Celebrity Signatures — the signatures of history">
+<meta property="og:description" content="Browse 7,000+ authentic signatures of history’s icons — artists, authors, presidents, founders — each traced to a real archive. Order any as a wall mural.">
+<meta property="og:url" content="https://celebsignatures.com/">
+<meta property="og:image" content="https://celebsignatures.com/assets/og-share.jpg">
+<meta name="twitter:card" content="summary_large_image">
+<meta name="twitter:title" content="Celebrity Signatures — the signatures of history">
+<meta name="twitter:description" content="Browse 7,000+ authentic signatures of history’s icons — artists, authors, presidents, founders — each traced to a real archive. Order any as a wall mural.">
+<meta name="twitter:image" content="https://celebsignatures.com/assets/og-share.jpg">
 </head>
 <body>
 <div class="masthead">
diff --git a/public/murals.html b/public/murals.html
index 47e55e0..669be07 100644
--- a/public/murals.html
+++ b/public/murals.html
@@ -145,6 +145,17 @@
 <!-- Google Analytics 4 (G-2HEVP6TD0J) -->
 <script async src="https://www.googletagmanager.com/gtag/js?id=G-2HEVP6TD0J"></script>
 <script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-2HEVP6TD0J');</script>
+<link rel="icon" type="image/png" href="/assets/favicon.png">
+<meta property="og:type" content="website">
+<meta property="og:site_name" content="Celebrity Signatures">
+<meta property="og:title" content="Celebrity Signature Murals — made to order">
+<meta property="og:description" content="A wall of history in their own hand. Custom-size signature murals from $10/sq ft, printed to order.">
+<meta property="og:url" content="https://celebsignatures.com/murals">
+<meta property="og:image" content="https://celebsignatures.com/assets/og-share.jpg">
+<meta name="twitter:card" content="summary_large_image">
+<meta name="twitter:title" content="Celebrity Signature Murals — made to order">
+<meta name="twitter:description" content="A wall of history in their own hand. Custom-size signature murals from $10/sq ft, printed to order.">
+<meta name="twitter:image" content="https://celebsignatures.com/assets/og-share.jpg">
 </head>
 <body>
 <header>
diff --git a/public/upload-signature.html b/public/upload-signature.html
index b020033..2594a86 100644
--- a/public/upload-signature.html
+++ b/public/upload-signature.html
@@ -40,6 +40,17 @@
 <!-- Google Analytics 4 (G-2HEVP6TD0J) -->
 <script async src="https://www.googletagmanager.com/gtag/js?id=G-2HEVP6TD0J"></script>
 <script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-2HEVP6TD0J');</script>
+<link rel="icon" type="image/png" href="/assets/favicon.png">
+<meta property="og:type" content="website">
+<meta property="og:site_name" content="Celebrity Signatures">
+<meta property="og:title" content="Upload Your Signature — earn a commission">
+<meta property="og:description" content="Own your signature. Upload it, keep it private, and earn $10 for every download.">
+<meta property="og:url" content="https://celebsignatures.com/upload">
+<meta property="og:image" content="https://celebsignatures.com/assets/og-share.jpg">
+<meta name="twitter:card" content="summary_large_image">
+<meta name="twitter:title" content="Upload Your Signature — earn a commission">
+<meta name="twitter:description" content="Own your signature. Upload it, keep it private, and earn $10 for every download.">
+<meta name="twitter:image" content="https://celebsignatures.com/assets/og-share.jpg">
 </head>
 <body>
 <header><h1>Upload Your Signature <a href="/">← back to the gallery</a></h1></header>
diff --git a/server.js b/server.js
index 0837706..ccfe15d 100644
--- a/server.js
+++ b/server.js
@@ -337,6 +337,7 @@ createServer(async (req, res) => {
     if (path === '/upload') path = '/public/upload-signature.html';
     if (path === '/game') path = '/public/game.html';
     if (path.startsWith('/assets/')) path = '/public' + path;
+    if (path === '/favicon.ico') path = '/public/assets/favicon.png';
     if (path === '/account.js') path = '/public/account.js';
     if (path === '/api/murals-catalog') path = '/data/murals-catalog.json';
     if (path === '/api/signature-evolution') path = '/data/signature-evolution.json';

← cb358f7 yoloforever C2 hardening (Cody FIX-FIRST, all verified real)  ·  back to CelebritySignatures  ·  yoloforever C3 fast-follow (Cody SHIP-IT verified real): can 36e1cbe →