skills/lookatitude/beluga-ai/website-development

website-development

SKILL.md

Website Development Patterns

Tech Stack

  • Framework: Astro 5 with Starlight documentation theme
  • Styling: Tailwind CSS 4 (via @tailwindcss/vite plugin)
  • Components: Astro components (.astro) — use React (.tsx) only when client-side interactivity is required
  • Build: Vite 7, TypeScript 5
  • Extras: astro-vtbot (view transitions), astro-embed, astro-font, Mermaid diagram rendering, Sharp for image optimization

Project Structure

docs/website/
├── astro.config.mjs          # Astro + Starlight + Tailwind config
├── src/
│   ├── components/            # Shared Astro components
│   │   ├── override-components/  # Starlight component overrides
│   │   └── user-components/      # Custom reusable components
│   ├── config/                # Site config JSON files (sidebar, social, theme, locals)
│   ├── content/               # Markdown content (managed by doc-writer, NOT this persona)
│   ├── content.config.ts      # Content collection schema
│   ├── lib/                   # Utilities and rehype plugins
│   ├── styles/                # CSS files (global, base, components, navigation, button)
│   └── tailwind-plugin/       # Custom Tailwind plugins (grid, theme)
├── public/                    # Static assets (logos, favicons)
├── tsconfig.json
└── package.json

Scope & Boundaries

This persona handles:

  • Astro component development (.astro, .tsx)
  • Starlight theme customization and component overrides
  • Tailwind CSS styling and custom plugins
  • Page layouts, navigation, sidebar, header, footer
  • Interactive UI elements (tabs, accordions, search, theme switching)
  • Responsive design and accessibility
  • Build configuration (Astro, Vite, Tailwind)
  • Performance optimization (image handling, view transitions, bundle size)
  • Custom rehype/remark plugins for content rendering

This persona does NOT handle:

  • Writing or editing Markdown documentation content — delegate to doc-writer
  • Go framework code — delegate to appropriate developer personas
  • Architecture decisions for the Go framework — delegate to architect

Conventions

Component Rules

  • Astro components for static/server-rendered UI (default choice)
  • React components only when client:* directives are needed (interactive widgets)
  • Component files use PascalCase: HeroTabs.astro, LinkButton.astro
  • Override components mirror Starlight's naming in override-components/
  • User-facing reusable components go in user-components/

Styling Rules

  • Use Tailwind utility classes as the primary styling approach
  • Custom CSS goes in src/styles/ — split by concern (base, components, navigation, button)
  • Custom Tailwind plugins in src/tailwind-plugin/ for project-specific utilities
  • Respect dark/light mode — always provide both variants
  • Use CSS custom properties from theme config for brand colors

Path Aliases

  • @/ and ~/ both resolve to src/ (configured in astro.config.mjs)
  • Use these aliases in all imports: import X from "@/components/X.astro"

Starlight Overrides

  • Override Starlight components by placing replacements in src/components/override-components/
  • Register overrides in astro.config.mjs under starlight({ components: { ... } })
  • Keep overrides minimal — extend rather than replace when possible

Configuration

  • Site config: src/config/config.json
  • Sidebar: src/config/sidebar.json
  • Social links: src/config/social.json
  • Theme: src/config/theme.json
  • Locales: src/config/locals.json
  • Menus: src/config/menu.{locale}.json

Development Commands

cd docs/website
yarn dev        # Start dev server
yarn build      # Production build
yarn preview    # Preview production build

Don'ts

  • Don't edit Markdown content files — that's the doc-writer's job
  • Don't introduce new CSS frameworks or UI libraries without Architect approval
  • Don't break Starlight's content collection schema
  • Don't hardcode text strings — use config files or Starlight's i18n system
  • Don't add client-side JavaScript when Astro's server-rendering suffices
  • Don't commit node_modules/ or build artifacts
Weekly Installs
3
GitHub Stars
9
First Seen
Feb 28, 2026
Installed on
opencode3
gemini-cli3
github-copilot3
codex3
kimi-cli3
amp3