Portfolio personnel / CV en ligne accessible sur gauthierpainteaux.fr.
- Framework : Next.js 16 (App Router, standalone output)
- Langage : TypeScript (strict)
- Styling : Tailwind CSS 4
- Linting / Formatting : Biome
- Package manager : pnpm
- Runtime : Node LTS Krypton
pnpm install
pnpm devLe serveur de dev (Turbopack) tourne sur localhost:3000.
pnpm build
pnpm start| Commande | Description |
|---|---|
pnpm dev |
Serveur de dev avec Turbopack |
pnpm build |
Build de production |
pnpm start |
Serveur de production (standalone) |
pnpm prod |
Build + start |
pnpm lint |
Lint avec Biome |
pnpm lint:fix |
Lint + autofix |
pnpm format |
Formatage avec Biome |
pnpm check |
Lint + format check |
pnpm check:fix |
Lint + format autofix |
docker build -t portfolio .
docker run -p 3000:3000 portfolioL'image utilise un build multi-stage avec node:krypton-alpine et tourne avec un utilisateur non-root.
Le workflow GitHub Actions (.github/workflows/build.yml) se declenche sur les tags v*.*.* et :
- Build le projet
- Upload les artefacts
- Build et push l'image Docker sur
ghcr.io
app/
├── layout.tsx # Layout racine, metadata, JSON-LD
├── page.tsx # Page unique (CV)
├── globals.css # Styles globaux + tokens Tailwind
├── error.tsx # Page d'erreur
└── not-found.tsx # Page 404
components/
├── Container.tsx # Conteneur de section
└── Divider.tsx # Separateur decoratif
public/
└── photo.webp # Photo de profil