← 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
A public/assets/favicon-32.pngA public/assets/favicon.pngA public/assets/og-share.jpgM public/game.htmlM public/index.htmlM public/murals.htmlM public/upload-signature.htmlM server.js
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 →