Aller au contenu
Tous les projets

matthieuguiot.dev

Le site que vous êtes en train de lire. Bilingue, avec un backoffice qui pilote chaque texte, chaque projet et chaque image sans toucher au code.

Web
Terminé
2025
2 semaines
matthieuguiot.dev

Un portfolio qui se contenterait d'afficher des textes écrits en dur n'aurait rien prouvé. Celui-ci a un backoffice complet : projets, articles, prestations, parcours, médiathèque, messages de contact, et jusqu'aux titres et aux paragraphes des pages publiques, tous éditables en français et en anglais depuis la même interface.

Le contenu

Les textes du site vivent en base sous deux formes : une chaîne pour les libellés courts, un document structuré pour les paragraphes, écrit dans un éditeur riche volontairement limité au gras, à l'italique, aux liens, aux listes et à deux niveaux de titres. Le serveur revalide ce document contre une liste blanche de nœuds avant de l'enregistrer, donc la page rendue ne peut contenir que ce que l'éditeur autorise.

Aucune donnée de démonstration nulle part. Quand une section n'est pas remplie, le site le dit au lieu d'inventer du contenu de remplissage.

La sécurité

Mot de passe haché en Argon2, jeton d'accès court gardé en mémoire, jeton de rafraîchissement en cookie httpOnly qui tourne à chaque usage et révoque toute sa lignée s'il est rejoué. Le formulaire de contact est limité en fréquence et piégé contre les robots. Les fichiers envoyés sont vérifiés sur leur contenu réel, pas sur ce que le navigateur annonce. Chaque page est servie avec une politique de sécurité de contenu à nonce unique.

Les performances

Les pages publiques sont rendues côté serveur et mises en cache ; un enregistrement dans le backoffice invalide ce cache aussitôt, sans redémarrage ni délai d'attente. Le champ de particules de la page d'accueil tourne en WebGL et se met en pause dès qu'il sort de l'écran ou que l'onglet passe en arrière-plan.