Skip to main content

site-marketing

The marketing website, capsem.org. Use when editing copy, adding sections, or changing the site theme.

Source facts

Repository
google/capsem
Last source activity
August 29, 2026 at 20:36
Detected SKILL.md language
English
Stars
79
Forks
15

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
site-marketing
description
The marketing website, capsem.org. Use when editing copy, adding sections, or changing the site theme.
# Marketing Website The marketing site (capsem.org) is a single-page landing built with Astro 7 + Svelte 5 + Tailwind v4. Source lives in `web/marketing/`. ## Dev workflow ```bash cd web/marketing && pnpm run dev # localhost:4321 cd web/marketing && pnpm run build # Production build cd web/marketing && pnpm run preview # Preview production build ``` ## CI and deploy rail `ci.yaml` runs the merge-blocking `site-build` job under `pr-gate`. `site.yaml` deploys only on every push to `main` and smokes `https://capsem.org/`. This deploy rail is independent from binary releases, manual VM asset releases, and the `release.capsem.org` asset-channel workflow. ## Architecture Single page (`web/marketing/src/pages/index.astro`) composed of Svelte components. All marketing copy is centralized in `web/marketing/src/lib/data.ts` -- edit that file to change text, not the components. ``` web/marketing/ astro.config.mjs Astro config (site: capsem.org, Svelte + Tailwind) package.json capsem-marketing package src/ pages/index.astro Single landing page, composes all sections layouts/Base.astro HTML shell (meta, fonts, skip-to-content) lib/data.ts All copy: site metadata, nav, features, FAQ, footer lib/icons.ts Icon SVG paths styles/global.css Tailwind theme tokens, base styles, button utilities components/ Nav.svelte Top navigation (client:load) Hero.svelte Hero section with install command Features.svelte Feature cards grid ProductOverview.svelte Architecture diagram (host/guest/vsock) HowItWorks.svelte Step-by-step explanation FAQ.svelte Accordion FAQ (client:visible) CTA.svelte Call-to-action (client:visible) Footer.svelte Footer with link columns Section.svelte Reusable section wrapper SectionHeader.svelte Reusable heading + subtitle Card.svelte Reusable card component Badge.svelte Reusable badge component Icon.svelte SVG icon component InstallCommand.svelte Copy-to-clipboard install snippet ``` ## Content editing All text lives in `web/marketing/src/lib/data.ts` as typed const exports: | Export | Content | |--------|---------| | `SITE` | Name, tagline, description, URLs (GitHub, docs, releases) | | `NAV_LINKS` | Top nav items | | `AGENTS` | Supported AI agents list | | `SECURITY_BLOCKS` | Three security pillars (isolation, inspection, control) | | `HOST_COMPONENTS` | Host-side architecture diagram items | | `GUEST_COMPONENTS` | Guest-side architecture diagram items | | `VSOCK_CHANNELS` | Vsock port labels for architecture diagram | | `FAQS` | FAQ question/answer pairs | | `FOOTER_COLUMNS` | Footer link groups | | `MCP_TOOLS` | MCP tool examples | | `PACKAGES` | Pre-installed packages list | | `ROADMAP` | Roadmap items | ## Theme Defined in `web/marketing/src/styles/global.css` using Tailwind v4 `@theme` tokens: - **Accent**: `--color-accent` (blue), `--color-accent-secondary` (purple), gradient between them - **Surfaces**: light (`--color-surface`) and dark (`--color-surface-dark`) variants - **Text**: separate light-bg and dark-bg tokens, all WCAG AA compliant - **Buttons**: 4 pill variants as `@utility` classes: `btn-primary` (gradient), `btn-dark`, `btn-outline`, `btn-outline-dark` - **Font**: Inter (loaded from Google Fonts in Base.astro) ## Component patterns - Sections alternate light/dark backgrounds using `section-dark` utility class - `Section.svelte` and `SectionHeader.svelte` provide consistent spacing and headings - Interactive components use Svelte hydration directives: `client:load` (Nav) or `client:visible` (FAQ, CTA) - `gradient-text` utility for accent-colored headings ## Graphics and icons Icons use inline SVG paths from `web/marketing/src/lib/icons.ts`, rendered via `Icon.svelte`. Favicons in `web/marketing/public/` are generated from `web/graphics/icon/1024w/capsem-logo-color.png`.
View on GitHub