From 7a783fb8986a61fb6b0a2f3ccc241f6fab1ddd50 Mon Sep 17 00:00:00 2001 From: Alvaro Gaona Date: Fri, 21 Aug 2026 03:02:16 +0200 Subject: [PATCH 1/2] feat: add a social card for the site root Starlight already emits `twitter:card: summary_large_image` on every page, but nothing ever set `og:image`, so sharing the root anywhere - Slack, Discord, X, LinkedIn - produced a bare text link with no card at all. Add a 1200x630 card built from the frontpage's own vocabulary: the cream paper background, the wordmark, the hero headline in the display serif, and the three supported platforms. It carries no distro name and no version, so a new release never leaves it stale, and no URL, since the site may not always live at robostack.github.io. The card is rendered by hand rather than at build time, which would mean pulling in a renderer just for one static image. scripts/og-image.html is the source and its header comment carries the render command. The tags land on the root page only; Starlight already emits the title, description and URL, so only the image, its dimensions and its alt text are missing. --- public/og.png | Bin 0 -> 34266 bytes src/pages/index.astro | 15 +++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 public/og.png diff --git a/public/og.png b/public/og.png new file mode 100644 index 0000000000000000000000000000000000000000..7f3c0783ff32db9ba194eac63d8a33a22bc758c9 GIT binary patch literal 34266 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 CSaqKO literal 0 HcmV?d00001 diff --git a/src/pages/index.astro b/src/pages/index.astro index cc46fd31..a590483e 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -20,6 +20,8 @@ import { newestRelease } from "../data/distros"; // Package links land on the newest release's table; the site recommends no // distro, so this is a landing page, not an endorsement. const packagesHref = `/${newestRelease().name}.html`; + +const ogImage = new URL("/og.png", Astro.site).href; --- { From 42be812562d53fed7ffb33111a982b3a549e1b08 Mon Sep 17 00:00:00 2001 From: Alvaro Gaona Date: Fri, 21 Aug 2026 11:31:51 +0200 Subject: [PATCH 2/2] feat: put the social card as a global property (every page) --- astro.config.mjs | 16 +++++++++++++++- src/pages/index.astro | 15 --------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/astro.config.mjs b/astro.config.mjs index 8cbe4572..b350eb85 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -3,8 +3,11 @@ import { defineConfig } from "astro/config"; import starlight from "@astrojs/starlight"; import svelte from "@astrojs/svelte"; +const site = "https://robostack.github.io"; +const ogImage = new URL("/og.png", site).href; + export default defineConfig({ - site: "https://robostack.github.io", + site, // Published URLs are `GettingStarted.html`, not `GettingStarted/`. Don't change this. build: { format: "file" }, integrations: [ @@ -22,6 +25,17 @@ export default defineConfig({ tag: "link", attrs: { rel: "apple-touch-icon", href: "/apple-touch-icon.png" }, }, + { tag: "meta", attrs: { property: "og:image", content: ogImage } }, + { tag: "meta", attrs: { property: "og:image:width", content: "1200" } }, + { tag: "meta", attrs: { property: "og:image:height", content: "630" } }, + { + tag: "meta", + attrs: { + property: "og:image:alt", + content: + "RoboStack - Manage ROS with ease. Any ROS distro, in an isolated per-project environment, on Linux, macOS and Windows.", + }, + }, ], social: [ { diff --git a/src/pages/index.astro b/src/pages/index.astro index a590483e..cc46fd31 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -20,8 +20,6 @@ import { newestRelease } from "../data/distros"; // Package links land on the newest release's table; the site recommends no // distro, so this is a landing page, not an endorsement. const packagesHref = `/${newestRelease().name}.html`; - -const ogImage = new URL("/og.png", Astro.site).href; --- {