Skip to content

assets: GitHub social preview card - #110

Merged
frahlg merged 1 commit into
mainfrom
110-social-preview
Aug 30, 2026
Merged

assets: GitHub social preview card#110
frahlg merged 1 commit into
mainfrom
110-social-preview

Conversation

@frahlg

@frahlg frahlg commented Aug 30, 2026

Copy link
Copy Markdown
Member

Part of #106.

Adds assets/social-preview.png (1280×640) — the card GitHub shows when the
repo link is pasted into Slack, X, or LinkedIn — and the HTML it renders from,
so it can be regenerated.

Fredrik: one manual step

This cannot be set from the CLI. Upload the PNG at:

GitHub → the repo → Settings → General → Social preview → Edit → Upload an image

Pick assets/social-preview.png from a checkout of this branch (or download it
from the Files tab of this PR).

What is on the card

Everything is README.md's hero, unchanged:

  • MIRANDA, small and letterspaced, top left
  • Leave your desk. Keep your terminal. — the headline, 106px
  • The reach layer for persistent terminals. — one supporting line
  • 12 ms on a LAN · end-to-end encrypted · no VPN, no SSH keys

The 12 ms is the lan-direct p50 in netsim/results/results.md. No claim on
the card that README.md does not already make.

Design

Dark ground #0D1117, a lower plane in #151B23, paper-white text, one accent
in signal orange #FF7A45. Familjen Grotesk 700 for the headline, IBM Plex Mono
500 for the wordmark and the proof row.

The only visual device is the card's own structure: two stacked planes, with the
accent sitting on the seam between them — the direct path, at the layer Miranda
is. Nothing else is drawn.

It is built to survive being a thumbnail. At 400px wide the headline and the
supporting line both still read.

Regenerating

The command is in a comment at the top of assets/social-preview.html, the way
assets/demo.tape documents the GIF:

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --headless --disable-gpu --hide-scrollbars \
  --force-device-scale-factor=1 --window-size=1280,640 \
  --virtual-time-budget=4000 \
  --screenshot=assets/social-preview.png \
  "file://$PWD/assets/social-preview.html"

The three webfonts are embedded as base64 (latin subsets, OFL 1.1), so the
render never touches the network and never quietly falls back to a system face.
Re-running the command reproduces the PNG byte for byte.

Checks

  • sips -g pixelWidth -g pixelHeight → 1280 × 640
  • cd go && go test ./... passes
  • cd web && npm test passes, 167/167
  • No new dependencies. Nothing outside assets/ changed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KeiotDVE94wEzvc7wcvm1y


Note

Low Risk
Marketing assets only under assets/; no application, auth, or runtime behavior changes.

Overview
Adds a 1280×640 GitHub social preview for link unfurls (Slack, X, etc.): assets/social-preview.html as the source layout and the companion assets/social-preview.png to upload under repo Settings → Social preview.

The card reuses the README hero (wordmark, headline, tagline, proof row with 12 ms on a LAN from netsim results). Styling is self-contained—dark palette, two-plane layout with an accent seam—and Familjen Grotesk / IBM Plex Mono are embedded as base64 so headless Chrome screenshots do not depend on network fonts.

Regeneration is documented in the HTML header (Chrome headless screenshot + sips dimension check), similar to how assets/demo.tape documents the demo GIF.

Reviewed by Cursor Bugbot for commit 7962d97. Bugbot is set up for automated code reviews on this repo. Configure here.

Adds assets/social-preview.png at 1280x640 for the repo's Social preview
setting, plus the HTML it renders from so it can be regenerated.

The card carries README.md's hero and nothing else: the wordmark, "Leave
your desk. Keep your terminal.", "The reach layer for persistent
terminals.", and a proof row. The 12 ms figure is the lan-direct p50 in
netsim/results/results.md.

The HTML embeds its three webfonts as base64, so the render never
depends on the network and never falls back to a system face. The
regeneration command is in a comment at the top of the file.

Part of #106

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KeiotDVE94wEzvc7wcvm1y
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Aug 30, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-08-30T14:00:16.244494Z 7962d97 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. Cursor Bugbot completed successfully with no findings that need human review. No reviewers assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@frahlg
frahlg merged commit 2bedd03 into main Aug 30, 2026
5 checks 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