44 lines
2.5 KiB
YAML
44 lines
2.5 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://qumo-pmj.webflow.io/ (staging Webflow site — this is what we are rebuilding, NOT the live site at qumo.io)
|
||
Migration plan: website-rebuild-migration-steps.md in the project root — sequential list of all migration steps (001–028), each designed to be run as an OpenSpec change
|
||
|
||
Pages: Homepage (/), About (/about), AI Launchpad (/ai-launchpad), Contact (/contact), Privacy (/privacy) — each with /nl/ locale variant
|
||
Nav: Services (/#services), AI Launchpad (/ai-launchpad), About (/about), Connect CTA (/contact)
|
||
Founders: 3 (Luigi, Jelle, Matthijs) — shown on /about with bios and role titles
|
||
|
||
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 https://qumo-pmj.webflow.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 |