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.com → bastien@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>
|
||
|---|---|---|
| .claude | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| CLAUDE.md | ||
| CV_Bastien_Chanot.html | ||
| CV_Bastien_Chanot.pdf | ||
| docker-compose.yml | ||
| Dockerfile | ||
| index.html | ||
| nginx.conf | ||
| README.md | ||
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
weasyprintfor 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, contactDM 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.