Portfolio personnel
Portfolio personnel avec design moderne noir/violet, développé avec Laravel 12, Tailwind CSS et Alpine.js. Inclut un panel d'administration complet, un système de thème clair/sombre et des animations avancées.
Contexte
Besoin d'une vitrine professionnelle centralisant projets, parcours et contact — développée pour un hébergement mutualisé classique (LWS, sans accès SSH) plutôt qu'une infrastructure cloud plus permissive, afin de rester dans un contexte de déploiement réaliste et économique.
Approche
Application Laravel 12 + Tailwind CSS + Alpine.js, thème clair/sombre persistant. Panel d'administration complet (projets, expériences, compétences, réglages du site, recadrage d'images) pour gérer le contenu sans redéploiement. Déploiement continu via GitHub Actions : tests automatisés à chaque push, puis build et synchronisation FTP incrémentale vers l'hébergement, migrations de base de données déclenchées via une route protégée par token (faute d'accès SSH). Volet SEO complet : sitemap généré depuis les projets publiés, JSON-LD (Person, CreativeWork, BreadcrumbList), Open Graph, canonical.
Défis techniques
Automatiser un déploiement complet (build, transfert de fichiers, migrations) sur un hébergement qui n'expose ni SSH ni accès direct à la base de données a demandé de sortir des approches habituelles (synchronisation FTP incrémentale, migrations via route HTTP sécurisée par token). Une restauration de sauvegarde côté hébergeur a temporairement désynchronisé la version en ligne de celle versionnée sur GitHub — résolu en resynchronisant le code réellement en production vers le dépôt, avec plusieurs correctifs récupérés au passage (redirections d'authentification erronées, bug de compilation lié à un commentaire Blade en tête de fichier). Optimisation ensuite du traitement des images (compression, recadrage, formats) pour absorber l'ajout de contenu photo sans dégrader les temps de chargement.
Résultat
Site en production sur portfolio-daens-elliott.fr, déploiement entièrement automatisé (push → tests → mise en ligne), panel d'administration utilisé au quotidien pour tenir le contenu à jour, indexation Google active.