Files
monde-usage/CLAUDE.md
Gabriel Vidal 620e0e2adc docs+meta: real README/CLAUDE, social metadata, curated og:image, deploy script
- README.md / CLAUDE.md: replace Vite boilerplate with the actual project
  description (Le Monde Usagé — Cloueless Collectif multimedia art project)
  and architecture notes.
- index.html: add full metadata (title, description, keywords, canonical,
  Open Graph + Twitter card, theme-color); fix lang en->fr.
- home.tsx: point helmet og:url at the live raspy2 domain (was stale Vercel)
  and add og:image.
- public/og-image.png: hand-made green papercut collage social image
  (generated from the project's own art), matching the site aesthetic.
- scripts/deploy.sh: zipgo deploy to monde-usage.game.gabvdl.xyz; omits the
  og-screenshot step to preserve the curated og:image.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 19:43:26 +02:00

54 lines
2.4 KiB
Markdown

# CLAUDE.md
Guidance for working in this repo. See `README.md` for the project overview.
## What this is
**Le Monde Usagé** — the React/Vite single-page website for a collaborative
multimedia art project (Cloueless Collectif). It is the public hub linking the
project's film, interactive archive, methodology and event timeline. It is a
content/showcase site: most "logic" is page layout, GSAP entrance animations,
and image assets — there is no backend, database, or API of its own.
Deploys to **https://monde-usage.game.gabvdl.xyz/** (homelab raspy2 / zipgo,
`*.game.gabvdl.xyz`). The old Vercel domain 301-redirects here via `vercel.json`.
## Architecture
- **SPA** with `react-router-dom` v6. Routes are declared in
`src/router/routes.ts` and wired in `src/router/index.tsx`; one component per
route under `src/pages/` (`home`, `contact`, `about`, `le-film-des-legumes`,
`le-monde-en-carton`, `actualites`).
- **Animations**: each page builds a GSAP timeline in a `useEffect` that runs
once its images have preloaded (`src/technical/usePreloadImages.ts`). Follow
that pattern — gate animations on `imagesReady` so nothing flashes in before
the (large) PNG art is ready.
- **Per-page meta** is set with `react-helmet` inside each page (title,
description, OpenGraph). `index.html` only holds favicons, the manifest, and
the Matomo snippet.
- **Styling**: Tailwind CSS 3. The hand-drawn **Underdog** font and the
monochrome sage/teal-on-white palette define the look. Hover interactions use
the `wiggle-hover` utility. Keep the hand-crafted, collage feel — avoid
generic/polished UI.
## Assets
The visual identity lives almost entirely in `public/assets/website/`
hand-drawn green title images (`titre-*.png`), papercut illustrations
(`arbre cuir.png`, `footer-home.png`), member photos, and section banners.
These are the source of truth for the project's look; reference them when
generating any new art (og-image, thumbnail).
## Develop & deploy
```bash
npm run dev # Vite dev server (HMR)
npm run build # tsc + vite build → dist/
npm run preview # serve the build locally
```
`npm run build` runs `scripts/generate-sitemap.ts` and copies everything in
`public/` (including `og-image.png` / `og-thumbnail.webp`) into `dist/`, which
is then published to zipgo. Commit + push project changes with the
`commit-project` skill (this is its own Gitea repo / submodule).