From dfa22046355cb04f4d31ad3c7e89a73ef090a27f Mon Sep 17 00:00:00 2001 From: Anthony Riley Date: Wed, 14 Oct 2026 11:40:03 +0200 Subject: [PATCH] feat: add a minimal social preview image and Open Graph tags A 1200x630 card with the logo, name and tagline on a solid near-black background, generated by scripts/generate-og-image.mjs (bun run generate-og-image). index.html gets og:* and twitter:* tags that point at oanalysis.com. Co-Authored-By: Claude Haiku 5.5 --- index.html | 14 ++++++++++++++ package.json | 1 + public/og-image.png | Bin 0 -> 41178 bytes scripts/generate-og-image.mjs | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+) create mode 100644 public/og-image.png create mode 100644 scripts/generate-og-image.mjs diff --git a/index.html b/index.html index 79e14f4..7bb6b88 100644 --- a/index.html +++ b/index.html @@ -7,6 +7,20 @@ + + + + + + + + + + + + + + diff --git a/package.json b/package.json index c9a9816..c0f4c12 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "vite", "generate-icons": "node scripts/generate-pwa-icons.mjs", + "generate-og-image": "bun run scripts/generate-og-image.mjs", "build": "bun run generate-icons && tsc -b && vite build", "lint": "oxlint", "test": "vitest run", diff --git a/public/og-image.png b/public/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..57d5794185e4586e50f496d2b9b4f7a18e928259 GIT binary patch literal 41178 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 + + + + + O-Analysis + + + Analyze and annotate your + orienteering sessions + +` + +const png = await sharp(Buffer.from(svg)).png().toBuffer() +writeFileSync(join(root, 'public/og-image.png'), png) +console.log(`Generated og-image.png (${WIDTH}x${HEIGHT})`)