Stack & icônes - grille unique enrichie (+24 technos) : React, TypeORM, Apache, Gitea, GitLab, GitHub Actions, Vite, pnpm, Socket.io, Chart.js, Discord.js, Prisma, Sequelize, IntelliJ IDEA, VS Code, Windows, HubSpot, HTML5/CSS3… - nouvelles catégories « Bases de données & ORM » et « Tests & Qualité » - 21 icônes simple-icons + tracés monochromes custom VS Code, Windows, Playwright ; support du fill-rule dans TechIcon - mise en page masonry (CSS columns) + titres et puces centrés Contenu & UI - Hero : retrait du badge « ouvert aux opportunités » - About / Contact : reformulation orientée projets - ProjectCard : statut « en développement » - typographie : tirets cadratins → virgules (titres, OG, aria-labels) - ajout du visuel public/images/logo/couverture.png
Portfolio — johanleroy.fr
Site vitrine one-page de Johan Leroy, développeur fullstack. Stack : Astro 6 (sortie 100 % statique), TypeScript, CSS (variables de thème), zéro îlot framework. Thème clair/sombre persistant, polices auto-hébergées (RGPD-friendly), icônes de technos via simple-icons (SVG inline monochromes).
Développement
npm install
npm run dev # serveur de dev (http://localhost:4321)
npm run check # astro check (typage)
npm run build # build statique → dist/
npm run preview # prévisualise le build
Modifier le contenu
Tout le contenu (profil, projets, expériences, formation, stack, centres d'intérêt) vit dans
un seul fichier typé : src/data/content.ts.
L'URL du bouton « café » s'y trouve aussi (coffeeUrl).
Assets
public/images/— logo, photos de profil, logos d'entreprises, visuels de projets.public/fonts/— Inter + JetBrains Mono (.woff2, auto-hébergées).public/cv.pdf— CV téléchargeable depuis le hero.
Déploiement
Automatique via Gitea Actions (.gitea/workflows/prod.yml) : tout push sur main lance
astro check + npm run build, puis envoie dist/ en FTP vers Plesk.
Secrets à définir dans Gitea (Settings → Actions → Secrets) :
FTP_HOST, FTP_USER, FTP_PASSWORD, FTP_TARGET_DIR (chemin docroot, ex. /httpdocs/johanleroy/public).
Déploiement manuel possible : npm run build → uploader le contenu de dist/ sur l'hébergement statique.