senternet-site-share-images

Generate per-page Open Graph share images using Sharp and SVG composition.

Updated May 8, 2026
One-click install
npx skills add https://github.com/MattSenter/senternet-site-skills --skill senternet-site-share-images-mattsenter
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: senternet-site-share-images
Source: https://github.com/MattSenter/senternet-site-skills/tree/main/.claude/skills/senternet-site-share-images
Command: npx skills add https://github.com/MattSenter/senternet-site-skills --skill senternet-site-share-images-mattsenter

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires sharp.

What problem does it solve? Social share previews often show a generic card or no image at all because creating a unique 1200x630 Open Graph image for every page requires manual design work in tools like Figma. This Skill automates the generation of branded, per-page OG images that match each page's actual hero image and typography. ## Core Features & Use Cases - Programmatic image generation: Composites each page's hero image, a dark legibility scrim, and SVG text overlays (title, subtitle, domain watermark) using Sharp, outputting JPEG (q90) for og:image plus lossless PNG. - Brand consistency detection: Detects the site's font from index.html, Tailwind config, CSS, or bundled font files, and renders titles in that font via a local .ttf. - Hero fallback logic: Pages without their own hero image automatically reuse the home page hero, with a gradient fallback when no hero exists. - Use Case: After adding an About and Pricing page to a Vite or Next.js marketing site, run the generator to produce public/share/about.jpg and pricing.jpg, then reference them in each page's MetaTags or metadata so every social share previews the actual page. ## Quick Start Ask the AI to generate per-page Open Graph share images for the site using the senternet-site-share-images skill, then run the created script with node scripts/generate-share-images.mjs.

Frequently Asked Questions about senternet-site-share-images

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate Open Graph images for every page of my site?▼

Use a Node.js script with Sharp to composite each page's hero image, a dark scrim, and an SVG text layer containing the page title. The script outputs 1200x630 JPEG and PNG files to public/share, which you reference in each page's og:image meta tag.

What image format should I use for og:image meta tags?▼

Use JPEG for og:image because several social crawlers, including some Facebook, LinkedIn, and iMessage paths, will not render WebP. JPEG at quality 90 has universal crawler support, while PNG can be kept as a lossless source.

Can Sharp render text in a custom font for share images?▼

Yes, but Sharp renders SVG through librsvg, which requires fonts as local .ttf files and cannot fetch Google Fonts URLs at render time. Download the .ttf or use a font bundled in public/fonts, then reference it via an @font-face rule in the SVG.

Does this work with Next.js metadata instead of index.html?▼

Yes, the generation script is unchanged for Next.js. Reference the images from each page's metadata openGraph.images field, and ensure metadataBase is set in app/layout.tsx so the URLs resolve to absolute paths that crawlers can fetch.

Why does my share image show no preview on social platforms?▼

Common causes are using WebP instead of JPEG, relative og:image URLs without a base URL, or images smaller than 1200x630. Verify the og:image points to an absolute JPEG URL and that the file is committed and deployed.