Utopix
Refonte complète d'un site vitrine bilingue en Next.js 16 et TypeScript, avec un back-office développé de zéro : contenus FR/EN en base via Prisma, authentification par session signée et gestion des diaporamas.
Le projet
Utopix est l'habitation-sculpture de l'artiste Jo Pillet, en Lozère. Il fallait remplacer l'ancien site par une application moderne, bilingue et rendue côté serveur pour le référencement, dont tous les contenus soient éditables par des utilisateurs non techniques.
Architecture
- Next.js 16 avec l'App Router (Turbopack en développement) et TypeScript de bout en bout.
- L'internationalisation avec next-intl : routage par préfixe /fr et /en, messages d'interface dans des fichiers de traduction, et contenus éditoriaux stockés en base dans les deux langues.
- Prisma 7 avec MySQL, via l'adapter MariaDB. Le modèle sépare les pages (identifiées par un slug qui pilote aussi le menu) de leurs traductions et de leurs images.
- Un rendu côté serveur : chaque page est servie avec son contenu complet dans la bonne langue, ce qui est indispensable pour l'indexation d'un site vitrine.
Le back-office
Je n'ai pas branché un CMS headless : j'ai développé un back-office sur mesure, limité exactement aux besoins du client.
- L'authentification se fait par cookie de session signé (JWT avec jose), sans dépendance à une solution d'auth externe.
- L'édition des sections permet de modifier titres et textes en français et en anglais.
- La gestion des diaporamas couvre l'upload, la suppression, le réordonnancement et un texte alternatif bilingue par image, ce qui sert à la fois l'accessibilité et le SEO.
- Un script de seed initialise la structure (les huit sections dans les deux langues) et crée le premier compte administrateur avec un mot de passe aléatoire, affiché une seule fois.
Choix et compromis
- Un back-office sur mesure plutôt qu'un CMS : une surface fonctionnelle réduite, aucune licence, aucun service tiers, et une interface que le client comprend sans formation. En contrepartie, chaque nouveau type de contenu se développe à la main.
- Les images stockées sur le disque local (public/uploads) plutôt que sur un stockage objet : c'est cohérent avec le volume et l'hébergement du projet. La migration vers S3 ou un équivalent reste simple si le besoin évolue.
- Le slug comme source unique de l'ordre et des libellés du menu, ce qui évite les incohérences entre la navigation et le contenu.
Boite à outils du projet:
- Next.js
- Typescript
- Prisma
- Node
- Sass
- Git
Aperçu visuel du rendu sur ordinateur et sur mobile
Intégration responsive: mise en page fluide en Flexbox et Grid, typographie et espacements adaptatifs.
Images en WebP, servies à la bonne taille selon l’écran. Zones tactiles dimensionnées pour le mobile, intégration fidèle aux maquettes.
Structure Html validée selon les standards W3C et optimisée pour l'accessibilité.


Types d’audits réalisés
- Validation du code HTML avec le validateur du W3C, l’organisme qui définit les standards du web.
- Analyse des performances avec Google PageSpeed Insights, sur mobile et sur ordinateur.
- Accessibilité : contrastes, textes alternatifs, navigation au clavier, à partir du score Lighthouse.
- Audit SEO approfondi avec Ahrefs : erreurs techniques, liens cassés, redirections, balises manquantes ou en double.
- Suivi dans la Google Search Console : indexation des pages, erreurs d’exploration, requêtes qui amènent des visiteurs.
