Files
qumo-website/openspec/config.yaml

38 lines
1.9 KiB
YAML

schema: spec-driven
context: |
Project: qumo.io company website rebuild
Stack: Astro 5, Tailwind CSS, TypeScript (minimal), Go (form handler)
Deployment: Docker (nginx:stable-alpine-slim) behind Caddy reverse proxy on VPS
Localization: English (default) + Dutch, file-based routing, JSON content strings
Font: Archia (self-hosted woff2, licensed). Fallback: geometric sans-serif
Brand colors: Midnight #102022, Snow #F3F3F3, Gradient #5257E4 → #F71E3E
Icons: Phosphor Icons, light weight, SVG, 32px
Form: Go backend, honeypot + JS timestamp + rate limiting. SMTP via Resend or Brevo.
Git: Gitea (self-hosted). No CI/CD pipeline yet — manual docker compose build + up.
AI tooling: Claude Code with Astro Docs MCP server.
Visual reference: https://www.qumo.io (live Webflow site, match design but improve code)
Constraints:
- Zero JavaScript shipped by default (Astro islands only where needed)
- All user-visible text in JSON content files, never hardcoded
- No client-side frameworks (React, Vue, etc.)
- Images processed by Astro <Image> component, not raw <img>
- Security headers configured in Caddy, not in the app
rules:
proposal:
- Reference the visual design at qumo.io when describing UI changes
- Note which content strings (en.json / nl.json) are affected
- Identify if the change affects SEO (structured data, meta tags, sitemap)
specs:
- Include both EN and NL content in requirements where applicable
- Specify responsive behavior (mobile, tablet, desktop breakpoints)
design:
- Use Astro component patterns (no React/Vue)
- Reference Tailwind utility classes, not custom CSS where possible
- Specify which Phosphor icon names to use
tasks:
- Each task should be completable in a single Claude Code session
- Build verification: npm run build must pass after each task
- Tasks that add new pages must include structured data and meta tags