Sharp Images
Sharp is Astro image pipeline dependency. It runs at site build time, not in the desktop app.
Importing through astro:assets (import { Image } from "astro:assets") triggers Sharp during astro build. Source files live under website/src/assets/ (landing screenshots, testimonial avatars, tutorial PNGs, footer paper texture). Output is responsive WebP under dist/_astro/*.webp.
Components pass widths and sizes so Astro generates a srcset. Landing feature rows, hero carousel slides, and testimonial columns all use this path. Layout stays stable because width/height hints reserve space before lazy-loaded images arrive.
Sharp does not ship in the RuForge installer. Player thumbnails come from yt-dlp art, ffmpeg poster JPEGs, or local files on disk. Scrub sprites are ffmpeg output, not Astro image service.
Adding a new marketing image: drop source in website/src/assets/, import in the .astro component, run npm run build in website/ to verify Sharp output.
In the repo
Where it shows up
-
website/package.jsonsharpdependency (via Astro image service) -
<Image />inLandingFeaturesSection.astro,HeroCarousel.astro,TestimonialsColumn.astro -
website/src/assets/sources optimized intodist/_astro/on build