Maximize SEO for the Aranea Development portfolio site (VitePress) by adding a build-time generated og-image, redesigning the favicon, fixing social sharing meta tags, adding font preload hints, and enhancing structured data.
Script: scripts/generate-og-image.ts using satori (declarative markup → SVG) + sharp (SVG → PNG).
Design (1200x630 PNG):
/public/fonts/)Output: public/og-image.png
Script: scripts/generate-favicon.ts using sharp + png-to-ico.
New SVG design — a more distinctive spider icon optimized for small sizes:
Generated outputs (all from the single SVG source):
favicon.svg — the vector sourcefavicon.ico — 16x16 + 32x32 multi-sizefavicon-192x192.pngfavicon-512x512.pngapple-touch-icon.png (180x180)Image meta tags added to global head in .vitepress/config.ts:
og:image → https://aranea-development.nl/og-image.pngog:image:width → 1200og:image:height → 630og:image:type → image/pngtwitter:image → https://aranea-development.nl/og-image.pngtwitter:card → changed from summary to summary_large_imageResource hints added to global head:
preload for critical fonts: Cinzel and Inter (self-hosted in /public/fonts/)Add Organization schema to the @graph array:
@type: Organization@id: ${siteUrl}/#organizationname: Aranea Developmenturl: ${siteUrl}logo: ${siteUrl}/favicon-512x512.pngimage: ${siteUrl}/og-image.pngfounder: reference to #personsameAs: ['https://github.com/AraneaDev']Enhance existing schemas:
WebSite.publisher → reference #organizationPerson.worksFor → reference #organizationWebSite.image → ${siteUrl}/og-image.pngNew devDependencies:
satori — generates SVG from declarative markupsharp — SVG/PNG conversion and resizingpng-to-ico — generates multi-size .ico from PNGtsx — runs TypeScript scriptsPackage.json scripts:
"generate-assets" — runs scripts/generate-assets.ts"build" — changed to "npm run generate-assets && vitepress build"File structure:
scripts/
generate-assets.ts — entry point, runs both generators
generate-og-image.ts — satori + sharp → public/og-image.png
generate-favicon.ts — sharp + png-to-ico → all favicon variants