Skip to content

Social-share metadata + OG image + favicon - #39

Merged
duckyquang merged 1 commit into
mainfrom
feat/social-share-meta
Jul 16, 2026
Merged

Social-share metadata + OG image + favicon#39
duckyquang merged 1 commit into
mainfrom
feat/social-share-meta

Conversation

@duckyquang

Copy link
Copy Markdown
Owner

Why

The launch is "click this link" — so the link preview is the funnel. Today the deployed SPA (https://duckyquang.github.io/Co-Scientist/) unfurls to a bare Co-Scientist title with an emoji-data-URI favicon: no description, no Open Graph, no Twitter card, no image. This makes the link unfurl properly on X, Slack, LinkedIn, iMessage, Discord, etc.

What

frontend/index.html <head>

  • description + <link rel="canonical">
  • Open Graph: og:type/site_name/title/description/url/image (+ image:type/width=1200/height=630/alt)
  • Twitter: summary_large_image card (title/description/image/image:alt)
  • theme-color (light #f7f9f8 + dark #101520 via prefers-color-scheme)
  • Real favicon: <link rel="icon" type="image/svg+xml"> + apple-touch-icon
  • Title enriched to Co-Scientist — tournament-ranked research hypotheses
  • OG/Twitter image URLs are absolute https://… — crawlers don't resolve relative URLs. Icon links use root-relative paths that Vite rewrites to /Co-Scientist/… under the Pages base.

frontend/public/ (new assets)

  • og.png — a real 1200×630 raster in the GEML look: #f7f9f8 paper with the faint 28px graph grid, big serif Co-Scientist wordmark, one-line tagline, and the pipeline motif ● Hypotheses → ● Tournament → ● Proposal with red/blue/green accent nodes, plus a footer (duckyquang.github.io/Co-Scientist · Runs free in your browser). Authored as an HTML card and rasterized with headless Chrome; verified PNG image data, 1200 x 630.
  • favicon.svg — GEML mark: serif "C" on ink #1b2437 with a red pipeline-node accent. Legible down to 16px.
  • apple-touch-icon.png — 180×180, same mark.

OG image preview

The card (paper + graph grid, serif wordmark, colored pipeline nodes, URL + "Runs free in your browser" footer). Rendered from the source HTML card via headless Chrome:

OPEN-SOURCE MULTI-AGENT RESEARCH ENGINE
Co-Scientist
Turns a research question into tournament-ranked, cited hypotheses — and a written proposal.
● Hypotheses → ● Tournament → ● Proposal
duckyquang.github.io/Co-Scientist · Runs free in your browser

(GitHub renders the actual image once the branch deploys to …/og.png.)

Scope note

The SPA's static <head> is shared by all routes, including the per-proposal microsite /s/:id/site. So every route uses this same site-level share card. Dynamic per-proposal OG images are out of scope for launch (would require SSR or prerendering) — the shared card is a fine default.

Verification

  • GITHUB_PAGES=true npm run build:pages succeeds.
  • dist/index.html contains every og:/twitter:/description/canonical/theme-color/icon tag; both image tags use absolute https://duckyquang.github.io/Co-Scientist/og.png; icon hrefs rewritten to /Co-Scientist/….
  • dist/og.png (1200×630), dist/favicon.svg, dist/apple-touch-icon.png, dist/404.html all present.
  • OG image + favicon eyeballed (favicon legible at 16/32/64px).

Only frontend/index.html + frontend/public/ assets changed — no app code touched.

🤖 Generated with Claude Code

The deployed SPA previously unfurled to a bare "Co-Scientist" title with an
emoji-data-URI favicon. Since the launch is "click this link", the link
preview is the funnel — this makes it unfurl properly on X, Slack, LinkedIn,
iMessage, etc.

frontend/index.html <head>:
- description, canonical
- Open Graph (type/site_name/title/description/url/image + dimensions/alt)
- Twitter summary_large_image card
- theme-color (light + dark via media)
- real SVG favicon + apple-touch-icon links
- title enriched to "Co-Scientist — tournament-ranked research hypotheses"
OG/Twitter image URLs are absolute https so crawlers resolve them.

frontend/public/:
- og.png — real 1200x630 raster in the GEML look (paper + 28px graph grid,
  serif wordmark, hypotheses -> tournament -> proposal pipeline motif).
  Authored as an HTML card, rasterized with headless Chrome.
- favicon.svg — serif "C" GEML mark with a red pipeline-node accent.
- apple-touch-icon.png — 180x180, same mark.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@duckyquang
duckyquang merged commit b985636 into main Jul 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant