19h47

July 28, 2026

Nine years later

19h47

Finally, I’m proud to release a new version of my website.
I say “finally” again, because some projects never really end. They just wait for the right excuse to be rewritten. This time, the excuse was honesty: the stack had aged, the JavaScript had grown messy, and I wanted the code to feel as calm as the design.

I think I have succeeded, again, in finding a balance between design, user experience, and technical execution.
Building this rewrite allowed me to revisit old ideas with better tools, practice my English once more, and keep what already worked: the black canvas, the grid, the typography, the little blackboard on the homepage.

Technical Implementation

The first version leaned on the WordPress REST API and client-side templates. It was exciting in 2017. It was also fragile.

– At first, I considered another single-page approach, fetch everything, render everything in the browser.
It still sounds cool. It still isn’t what this site needs.

– The second idea was to keep Barba.js for transitions, but stop pretending the front-end should rebuild pages from JSON.
WordPress and Timber already render Twig. Let them do that. Barba can swap HTML, it doesn’t have to own the content model.

– So I went with a quieter architecture: Timber on the server, Vite and TypeScript for assets, Tailwind for the grid utilities, PiecesJS for small web components (Last.fm, Tumblr, the blackboard), and GSAP where motion still matters.

No more mustache.js living inside Twig. No more verbatim tricks.
Separation of concerns feels better when templates stay templates.

Fun fact: the design barely changed. The code did. That was the point.

I still love WordPress. I truly do. With Timber, ACF, and a small service registry in PHP, it remains a powerful CMS, no matter what people say.

Pretty neat, isn’t it?

Design

In terms of design, I am still influenced by web design centered around typography, grids, and layouts.
This kind of design is very rigorous, with strict rules, but it brings a sense of calm and clarity.
White on black (and black on white for thoughts and the CV) still does the heavy lifting. Coupled with a minimalist composition and a focus on typography, the effect is immediate.

One of the first things I kept from the original prototype was the ratio.
This is a rule I imposed on myself, and I hope I managed to stick to it. Indeed, once you choose a ratio, you can apply it everywhere: font size, line height, grid, gutter…
The rule becomes exciting because you have to work within its boundaries.

This balance is felt unconsciously by the user, like something you can’t quite name, but know is there.
A sense of harmony emerges from the rigor.

You can find the source code of the site on my GitHub.

April 29, 2017

May1Reboot

#May1Reboot Did you see that you could save your creation?

Finally, I’m proud to release my website.
I say “finally” because, while I love minimalist design, JavaScript always presents a challenge.

I think I have succeeded in achieving my goal: finding a nice balance between design, user experience, and technical execution.
Building this site allowed me to experiment with many things—with JavaScript and design—as well as practice my English.

Technical Implementation

I used the WordPress REST API for the content pages.
To display the API responses, I used a template system.

– At first, I thought that building the site entirely with Vue.js would be really cool.
But I quickly realized that I lacked the skills needed to build a robust solution using Vue.js and the REST API.

– The second solution would have been to use Twig.js.
Since the site is built with Twig, it would have been logical to use Twig with JavaScript as well. Unfortunately, I couldn’t get Twig.js to work.

– So I went with the simplest solution: mustache.js—a solution I’m only partly satisfied with.
Indeed, script tags ended up in the middle of the template. Separation of concerns always matters.

Fun fact: mustache.js and Twig share the same syntax for rendering templates: double braces.
So there was a conflict.
The trick is to use the verbatim tag, which tells Twig not to render the code encapsulated within it.

I really love WordPress—I truly do. With Timber, ACF, and hooks, it becomes a powerful CMS, no matter what people say.

Pretty neat, isn’t it?

Design

In terms of design, I am heavily influenced by web design centered around typography, grids, and layouts.
This kind of design is very rigorous, with strict rules, but it brings a sense of calm and clarity.
For a long time, I wanted to create a white-on-black website so its visual impact would be stronger. Coupled with a minimalist composition and a focus on typography, the effect is immediate.

One of the first things I searched for when creating my prototype was the ratio I would use.
This is a rule I imposed on myself, and I hope I managed to stick to it. Indeed, once you choose a ratio, you can apply it everywhere: font size, line height, grid, gutter…
The rule becomes exciting because you have to work within its boundaries.

This balance is felt unconsciously by the user—like something you can’t quite name, but know is there.
A sense of harmony emerges from the rigor.

You can find the source code of the site on my GitHub.