No framework, no build pipeline, no CMS, no analytics. Vanilla HTML, CSS, JavaScript. Hosted on OVH in France. Seventy-two pages, nine hundred kilobytes zipped, zero npm dependencies. Here are the choices behind it, and why.
— If you wonder why this page exists: because recruiters like to look under the hood. So do I.
Semantic HTML5, modern CSS3, vanilla ES2020+ JavaScript. Zero framework — no React, no Vue, no Svelte, no Next. Seventy-two static pages hand-crafted, with a small JS template system for articles (one JS file per language, injecting content into a post.html template).
--bg, --accent, etc.), grid + flexbox, clamp() for fluid responsive, theme switching via data-attributes. A single styles.css file, 8 500 lines, carefully organized by sections.script.js handling nav, theme toggle, blog filters, quiz, dynamic Currently footer, cookie banner and scroll-reveal animations. Plus a few dedicated modules (chess.js, snake.js, metro.js, tags.js).OVH France. Shared hosting. Twenty euros per year. My files, on servers in Roubaix. No Cloudflare, no Vercel, no AWS, no Netlify. Just HTTP/2 and an automatic Let's Encrypt certificate.
Deployment is old-school: I zip the portfolio/ folder, upload it via OVH's file manager, unzip, delete the old version. Three minutes. No CI/CD, no webhook. Simplicity has a comfort cost, but zero external failure points.
— OVH because it's French, I like companies from the North, and it costs me less than a coffee per month.
posts-fr.js and posts-en.js, two text files I edit with VS Code. No WordPress, no Contentful, no Sanity.For longevity. In ten years, this site will still work as is. No major framework version breaking everything. No deprecated plugin. No third-party service shutting down.
For performance. First paint under 200 milliseconds on 4G. No Lighthouse at 60 because a framework loaded 3 MB of JavaScript to display three divs.
For control. I see and understand every line. Every pixel knows why it's there.
For pedagogy. A portfolio site built with React that loads in seven seconds won't convince anyone that we know how to build simple, robust, durable. The medium is the message.
A few tools helped along the way:
And then, as always for this kind of project: time, patience, and a lot of readjustments.
The repository isn't public, but I can share bits privately if it interests you. What for?
LAST UPDATED · MAY 17, 2026