From 3606661514345b7e4b6367169a931021b2c0871a Mon Sep 17 00:00:00 2001 From: aliferous3 Date: Mon, 19 Oct 2026 23:58:13 +0400 Subject: [PATCH 1/4] seo: strengthen homepage search positioning and entity graph MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Retitle the public homepage from the vague "Code Metrics" frame to the product category — open-source GitHub analytics for developers — and rewrite the meta description around what the app actually reads (commits, source growth, churn, languages, activity, projects, releases). Add a JSON-LD entity graph reusing the publishing layer's identity scheme: WebApplication at https://devledger.site/#app with license, repository, and shipped-feature claims only, plus a WebSite node linking the site entity to the application. The login surface gets two minimal copy changes for category clarity: the tagline now names the category, and the quiet trust-link row gains a crawlable link to the canonical GitHub analytics tool page. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- index.html | 51 ++++++++++++++++++++++++++++++----- src/ledger/LoginScreen.tsx | 8 +++++- test/launch-metadata.test.mjs | 39 +++++++++++++++++++++++++-- 3 files changed, 89 insertions(+), 9 deletions(-) diff --git a/index.html b/index.html index 3f3dd78..ba0687d 100644 --- a/index.html +++ b/index.html @@ -4,10 +4,10 @@ - Dev Ledger — Code Metrics + Dev Ledger — Open-Source GitHub Analytics for Developers @@ -17,10 +17,10 @@ - + @@ -33,10 +33,10 @@ /> - + + diff --git a/src/ledger/LoginScreen.tsx b/src/ledger/LoginScreen.tsx index a2b1ce9..1f3ff23 100644 --- a/src/ledger/LoginScreen.tsx +++ b/src/ledger/LoginScreen.tsx @@ -78,7 +78,7 @@ export function LoginScreen({ onLogin }: { onLogin?: () => void }) { text="DEV LEDGER" className="font-editorial font-light text-[clamp(2.4rem,6.2vw,5.6rem)] leading-none mt-2" /> -

Your GitHub history, made legible.

+

Open-source GitHub analytics — your development history, made legible.

{/* mission line — full content width, 22px single line on desktop, @@ -162,6 +162,12 @@ export function LoginScreen({ onLogin }: { onLogin?: () => void }) { > BLOG — READING YOUR GITHUB HISTORY + + GITHUB ANALYTICS — WHAT THE TOOL READS + diff --git a/test/launch-metadata.test.mjs b/test/launch-metadata.test.mjs index 0b76593..148284c 100644 --- a/test/launch-metadata.test.mjs +++ b/test/launch-metadata.test.mjs @@ -22,7 +22,7 @@ const OG_PAGES = [ height: '941', alt: 'Dev Ledger — open-source GitHub developer analytics.', canonical: 'https://devledger.site/', - title: 'Dev Ledger — Code Metrics', + title: 'Dev Ledger — Open-Source GitHub Analytics for Developers', }, { html: 'security.html', @@ -60,7 +60,7 @@ test('launch metadata exposes canonical Open Graph and Twitter cards', () => { const html = src('index.html'); assert.match(html, //); - assert.match(html, /property="og:title" content="Dev Ledger — Code Metrics"/); + assert.match(html, /property="og:title" content="Dev Ledger — Open-Source GitHub Analytics for Developers"/); assert.match(html, /property="og:image" content="https:\/\/devledger\.site\/og\/dev-ledger\.png"/); assert.match(html, /property="og:image:width" content="1672"/); assert.match(html, /property="og:image:height" content="941"/); @@ -69,6 +69,41 @@ test('launch metadata exposes canonical Open Graph and Twitter cards', () => { assert.match(html, /name="theme-color" content="#0a0a0a"/); }); +test('homepage JSON-LD declares the app and site entities with stable ids', () => { + const html = src('index.html'); + const blocks = [...html.matchAll(/