Single-page static site at bchanot.fr: landing (index.html) and CV (HTML + PDF), pure HTML/CSS/JS, no build step. Includes project conventions (CLAUDE.md), README, and .claude/ memory/tasks/audits scaffolding. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.0 KiB
4.0 KiB
bchanot.fr — CLAUDE.md
Single source of truth for Claude in this repo.
Global rules: ~/.claude/CLAUDE.md — this file extends or overrides them.
Project overview
Personal landing page + CV for Bastien Chanot (developer, systems & backend). Single-page static site served at https://bchanot.fr. Goal: a recruiter or CTO landing on the page decides whether to contact within 10 seconds.
Audience: technical recruiters, CTOs, engineering managers. Use case: hub for contact + CV access. No tracking, no analytics, no cookie banner.
Stack
- Pure static HTML/CSS/JS — no framework, no build step.
- Fonts: Google Fonts (
JetBrains Monomono,Frauncesdisplay,DM Sanssans). - PDF generation for CV:
weasyprint(from the matching HTML file).
No package manager. No bundler. No runtime dependencies beyond Google Fonts.
Files
index.html — landing page (single file, inline CSS + JS)
CV_Bastien_Chanot.html — CV (web version, linked from landing as "Voir le CV")
CV_Bastien_Chanot.pdf — CV (printable, served via "Télécharger PDF")
README.md — repo readme
CLAUDE.md — this file
.claude/ — Claude memory, tasks, audits
Serve locally
python3 -m http.server 8000 --bind 0.0.0.0
# then visit http://192.168.1.101:8000/ from any device on the LAN
UFW may block the port — open it on demand only:
sudo ufw allow 8000/tcp
Regenerate CV PDF (after editing the HTML)
weasyprint CV_Bastien_Chanot.html CV_Bastien_Chanot.pdf
The PDF must match the latest HTML before pushing or sending.
Design system (non-negotiable)
Palette — exact hex:
#0d1b12— dark forest (nav, dark sections, footer)#1b5e3b— green primary (links, section titles on light bg)#2d7a4f— green accent (borders, dots, separators)#6ab98a— green light (lisible on dark bg)#dff0e7— green tint (pill bg)#f5f3ec— parchment (page bg)
Typography:
Fraunces(serif) — display: hero name, section titles, role headingsJetBrains Mono(mono) — eyebrows, badges, tech pills, nav, contact rowsDM Sans(sans) — body text
Forbidden:
- Pure white background (
#ffffff) border-radius> 6px except pills- Heavy SVG illustrations
- Lorem ipsum or placeholder text
- Mention of salary / TJM / pricing
Project conventions
- All CSS lives inline in
<head>(<style>) — no external stylesheet. - All JS lives inline before
</body>(<script>) — vanilla only. - CSS variables in
:rootfor palette + typography + spacing scale. - Section comments in HTML:
<!-- HERO -->,<!-- ABOUT -->, etc. - Sections semantic:
<header>,<main>,<section id="…">,<footer>. - Mobile-first. Breakpoints: 768px (tablet), 1200px (desktop).
- Animations CSS-only or vanilla JS. No GSAP, no Three.js, no Lottie.
prefers-reduced-motion: reducemust disable animation + smooth-scroll.
Content rules
- Only real information — never invent dates, companies, achievements.
- French copy (audience is French market).
- Profile state, including job search context, must stay consistent across index.html and CV. Currently: looking for CDI in embedded / systems software first; freelance missions (ZenQuality) in parallel.
- Geography: Yerres (91) currently; targeting Pays de la Loire mid-term; full remote preferred or hybrid 1–2 days/month if Paris.
Exceptions to global rules
None — global rules apply.
Workflow expectations
- Edits to
index.htmlorCV_Bastien_Chanot.htmlmust preserve the palette + typography + structure unless explicitly asked to change them. - After editing
CV_Bastien_Chanot.html, regenerate the PDF. - Never add external dependencies beyond Google Fonts.
- Never add tracking, analytics, cookie banners or third-party scripts.
- Always test in mobile width (375px) and desktop (1440px) before claiming done.
- The HTTP server bound to
192.168.1.101:8000is for local LAN testing only.