> ## Documentation Index
> Fetch the complete documentation index at: https://constanza101-borrissol-28.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Borrissol Espai Creatiu — Developer Documentation

> Technical documentation for the Borrissol website: Astro 6, multilingual i18n, Keystatic CMS, design system, SEO, and Netlify deployment.

Borrissol Espai Creatiu is a multilingual textile workshop website built with **Astro 6**, serving four languages (Catalan, Spanish, English, French) from a single codebase. This documentation covers the architecture, design system, workshop landing pages, CMS setup, and deployment pipeline for developers contributing to or maintaining the project.

<CardGroup cols={2}>
  <Card title="Introduction" icon="book-open" href="/introduction">
    Project overview, stack summary, and key architectural decisions.
  </Card>

  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Clone, install, and run the dev server in under five minutes.
  </Card>

  <Card title="Project Structure" icon="folder-tree" href="/project-structure">
    Directory layout, routing conventions, and file responsibilities.
  </Card>

  <Card title="i18n" icon="globe" href="/core-concepts/i18n">
    Four-language routing, translation catalog, and hreflang setup.
  </Card>

  <Card title="Design System" icon="palette" href="/core-concepts/design-system">
    CSS token reference, typography scale, utility classes, and component rules.
  </Card>

  <Card title="SEO & Structured Data" icon="magnifying-glass" href="/core-concepts/seo">
    JSON-LD schemas, Open Graph tags, sitemap, and Lighthouse optimization.
  </Card>

  <Card title="Workshop Pages" icon="scissors" href="/workshops/tufting">
    Per-technique landing pages: tufting, punch needle, felting, and loom.
  </Card>

  <Card title="CMS (Keystatic)" icon="pen-nib" href="/dev/cms-keystatic">
    Git-backed blog CMS: schema, local dev workflow, and cloud publishing.
  </Card>
</CardGroup>

## What's in this codebase

The Borrissol site is a **production Astro 6 project** deployed on Netlify with the following highlights:

<CardGroup cols={3}>
  <Card title="4 Languages" icon="language">
    Catalan (default), Spanish, English, and French — all copy in a single `ui.ts` catalog.
  </Card>

  <Card title="Lighthouse 99/97/100/100" icon="gauge-high">
    Performance 99 · Accessibility 97 · Best Practices 100 · SEO 100
  </Card>

  <Card title="Zero Runtime JS" icon="bolt">
    Vanilla JS only — no React/Vue/Svelte shipped to visitors. React is a build-only dep for Keystatic.
  </Card>

  <Card title="GDPR Consent Mode v2" icon="shield-check">
    Google Analytics with cookieless default; cookies only after explicit user consent.
  </Card>

  <Card title="Keystatic CMS" icon="database">
    Git-backed MDX blog, authored in Catalan by the studio owner via a cloud UI.
  </Card>

  <Card title="Netlify Deployment" icon="cloud-arrow-up">
    Git push → auto-deploy, with bot-trap edge redirects and function cost control.
  </Card>
</CardGroup>

## Development quick reference

```bash theme={null}
npm run dev          # Start dev server → http://localhost:4321
npm run build        # Production build → ./dist
npm run preview      # Preview the production build locally
npm run test         # Vitest unit tests
npm run test:e2e     # Build + Playwright end-to-end tests
```

<Note>
  Node ≥ 22.12.0 is required (pinned by Astro 6). If you see peer-dep warnings for `@keystatic/astro`, the `.npmrc` `legacy-peer-deps=true` flag handles this — do not delete it until Keystatic publishes official Astro 6 support.
</Note>
