© Made by Adam Bellanger

Le site que vous lisez : Next.js 16, bilingue avec détection automatique de la langue, animations soignées, auto-hébergé en Docker sur mon serveur.

Aperçu

adambellanger.pro
Accueil du portfolio : portrait détouré et nom en grand qui défile
adambellanger.pro
Liste des projets en version anglaise, avec les filtres
Accueil du portfolio sur mobile

Stack

Langages
  • TypeScript
Front-end
  • Next.js
  • Tailwind CSS
  • Framer Motion
Infra
  • Docker
  • Nginx Proxy Manager
  • GitHub Actions

Contexte

Mon premier portfolio (une scène 3D Three.js) était lent et peu lisible. Je voulais un site qui assume mon double profil réseau/télécom et développement, rapide, accessible, et que je maîtrise de bout en bout : du code jusqu'au serveur qui l'héberge.

Rôle

Conception, développement et mise en production : direction artistique, contenu des études de cas, architecture, déploiement et maintenance.

Architecture

  1. Navigateur

    FR ou EN selon sa langue

  2. Nginx Proxy Manager

    HTTPS, Let's Encrypt

  3. Proxy Next.js

    Détection de langue, réécriture des URL

  4. Pages statiques

    Pré-générées en FR et EN

    Routes API

    Formulaire, compteur de visites

  5. SMTP Gmail

    Messages du formulaire

    Volume Docker

    Compteur de visites

À chaque push sur GitHub, GitHub Actions vérifie le lint et le build avant le déploiement.

Défis

Des animations fluides (rideau de transition entre les pages, curseur contextuel, boutons magnétiques, défilement doux) sans sacrifier les performances ni l'accessibilité : tout est coupé si le visiteur préfère réduire les animations, et le site vise 90+ sur Lighthouse. Une version anglaise complète, avec détection de la langue du navigateur et des URL traduites, gérée par un proxy Next.js sans librairie. Un formulaire de contact qui envoie de vrais e-mails en SMTP, avec anti-spam. Et un défilement qui restait bloqué après une navigation, corrigé en observant la hauteur réelle de la page.

Résultat

Des pages pré-générées dans les deux langues, servies par un conteneur Docker léger derrière Nginx Proxy Manager, avec un compteur de visites auto-hébergé sans cookies, une image d'aperçu générée pour chaque projet et un build vérifié par GitHub Actions à chaque push.

Points clés

  • FR / EN avec détection automatique, URL traduites et hreflang
  • Transitions de page et curseur contextuel, prefers-reduced-motion respecté
  • Docker standalone derrière Nginx Proxy Manager, sur mon serveur Hetzner
  • Lint et build vérifiés par GitHub Actions à chaque push
Projet suivantDocsDesk →