Introduction

capystreama-website

capystreama-website is a static streaming schedule site template. Each streamer's site is generated at build time from a small config bundle, and deployed to GitLab Pages — driven end-to-end from the GUI 's Website tab.

The template ships no built-in content. Every build runs against a config directory that supplies the streamer's identity, schedule, worlds, theme, and any message overrides. That config directory is exactly what the GUI writes into a streamer's config repo.

What the site shows

  • Home — a localized greeting (Welcome to {stream_name}) and a link to the schedule.
  • Schedule — a weekly stream schedule. Times are authored once in the streamer's local time and converted client-side to each viewer's own timezone (DST-correct), showing both the viewer's local time and the streamer's time, plus the game, platform, and world for each stream. The schedule page is optional: if a deployment ships no schedule.yaml, the nav link is hidden and /schedule redirects home.

Tech

The site is a SvelteKit app (Svelte 5) built with @sveltejs/adapter-static into a fully prerendered, static bundle. Internationalization is handled by Inlang Paraglide (en-US base, es-US included). Config is YAML + a small JSON theme, validated with valibot , against a shared code-generated data model used by both the site (TypeScript) and the GUI (Go).

Read on: Configuration covers the config contract, Theming the color system, Localization the message files, and Building & Deploy how a site is built and shipped.