Go to file
Bastien Chanot 1369d27b5b feat(landing): extended-vitrine refactor — CV-aligned, +Projets, +Méthode
Landing now says more than the CV instead of duplicating it.

- meta/title: synced with new positioning (kernel, AOSP, cloud gaming, GPU)
- nav: added #projets and #methode anchors
- hero: subtitle "Développeur Systèmes · Embarqué · Backend",
  tech banner Backend·Cloud
- about: senior wording + 3 new paragraphs (philosophy, target context,
  what I'm not chasing)
- stack: 6 → 8 cards
  - dropped VMware, Gitflow, Agile
  - added cgroups, namespaces, SELinux, GitHub Actions
  - new Cloud/Infra card (AWS EC2, g4dn bare-metal, IAM, S3, CloudWatch,
    Scaleway VPS, OVH/Hetzner, Nginx, Apache, Let's Encrypt)
  - new IA/Outils card (Claude Code agents/skills, N8N, automation)
  - Familier avec: C++ sub-row in Langages
- parcours: removed lone-wolf wording (seul / responsable unique);
  CareGame / ZenQuality / Deewee rewritten as intro + technical bullets +
  per-experience stack pills; Deewee dates corrected to fév.-nov. 2017
  with Stage 42 + CDD contract line
- new Projets section between Parcours and Formation: Git auto-hébergé
  (git.bchanot.fr) and Homelab
- new Méthode section between Formation and Contact: 5 habits
- contact email: chanot.bastien@gmail.combastien@bchanot.fr
- CSS: extensions only (.timeline-bullets, .timeline-stack,
  .timeline-intro, .timeline-contract, .projects-grid, .project-card*,
  .methode-list, .methode-item, .methode-num, .stack-note, .pill-context),
  all reusing existing design tokens

TODO.md tracks the refactor milestone.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 03:50:41 +02:00
.claude feat(landing): extended-vitrine refactor — CV-aligned, +Projets, +Méthode 2026-05-17 03:50:41 +02:00
.dockerignore feat(docker): containerize site with configurable host port 2026-05-15 16:53:20 +02:00
.env.example feat(docker): containerize site with configurable host port 2026-05-15 16:53:20 +02:00
.gitignore feat(docker): containerize site with configurable host port 2026-05-15 16:53:20 +02:00
CLAUDE.md chore: initial commit — landing page + CV + Claude config 2026-05-15 16:53:06 +02:00
CV_Bastien_Chanot.html final version of cv html and pdf 2026-05-15 20:08:50 +02:00
CV_Bastien_Chanot.pdf final version of cv html and pdf 2026-05-15 20:08:50 +02:00
docker-compose.yml feat(docker): containerize site with configurable host port 2026-05-15 16:53:20 +02:00
Dockerfile feat(docker): containerize site with configurable host port 2026-05-15 16:53:20 +02:00
index.html feat(landing): extended-vitrine refactor — CV-aligned, +Projets, +Méthode 2026-05-17 03:50:41 +02:00
nginx.conf feat(docker): containerize site with configurable host port 2026-05-15 16:53:20 +02:00
README.md chore: initial commit — landing page + CV + Claude config 2026-05-15 16:53:06 +02:00

bchanot.fr

Personal landing page + CV for Bastien Chanot — developer, systems & backend.

Static single-page site (no framework, no build step). Lives at https://bchanot.fr.

Contents

File Purpose
index.html Landing page (inline CSS + JS, single file)
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"
CLAUDE.md Project rules for the Claude assistant
.claude/ Memory registries, tasks, audits

Local preview

python3 -m http.server 8000 --bind 0.0.0.0

Then open http://localhost:8000/ (same machine) or http://192.168.1.101:8000/ from any device on the LAN.

If the LAN URL is unreachable, the firewall is likely blocking the port:

sudo ufw allow 8000/tcp

Regenerate the CV PDF after editing the HTML

weasyprint CV_Bastien_Chanot.html CV_Bastien_Chanot.pdf

Run this every time CV_Bastien_Chanot.html is modified so the served PDF stays in sync.

Stack

  • HTML5 + CSS3 (inline <style> in <head>)
  • Vanilla JS (inline <script> before </body>)
  • Google Fonts: JetBrains Mono, Fraunces, DM Sans
  • weasyprint for HTML → PDF conversion (CV only)

No bundler. No npm. No runtime dependencies beyond Google Fonts.

Design rules

Strict palette (non-negotiable):

Hex Role
#0d1b12 Dark forest — nav, dark sections, footer
#1b5e3b Green primary — section titles, links on light bg
#2d7a4f Green accent — borders, dots, separators
#6ab98a Green light — text on dark bg
#dff0e7 Green tint — pill background
#f5f3ec Parchment — page background

Typography:

  • Fraunces — display (names, titles)
  • JetBrains Mono — technical labels, badges, pills, nav, contact
  • DM Sans — body text

Mobile-first, responsive at 768px + 1200px breakpoints. WCAG AA contrast. Focus visible. Semantic HTML.

Deploy

Static files — drop index.html, CV_Bastien_Chanot.html, and CV_Bastien_Chanot.pdf onto any static host (Netlify, Vercel, GitHub Pages, plain nginx) at the root.

License

Personal site content — © Bastien Chanot.