Skip to content

Design de portfolio

Portfolio personnel

Figma
React
NextJS
Tailwind
TypeScript
Git
Vercel
Screenshot 1
1 / 2

Ce portfolio a été entièrement conçu et développé par moi, sans utiliser de template générique. Il reflète ma créativité et mon identité. Réalisé avec React, Next.js et TypeScript, et déployé sur Vercel, il met en avant mes projets, mon parcours et mes compétences. Une intégration avec Nodemailer permet également un contact direct via le formulaire.

Contexte

01

Problème

Besoin d'un portfolio unique reflétant ma créativité

02

Mon rôle

Design & développement complet

03

Résultat

Score Lighthouse 100, SEO optimisé, bilingue FR/EN

En chiffres

100Score Lighthouse
JSON-LDSEO optimisé
FR/ENBilingue
6+Composants Magic UI

Architecture

Ce portfolio utilise Next.js 15 avec App Router pour un routing moderne et performant. Le design est entièrement personnalisé avec Tailwind CSS, sans dépendance à des templates. Les animations sont gérées par Framer Motion pour une expérience fluide.
1

Next.js 15 avec App Router pour le SSR et SSG

2

Tailwind CSS pour un design responsive et moderne

3

Framer Motion pour les animations fluides

4

TypeScript pour la sécurité du code

5

Optimisation SEO avec next-sitemap

6

Déploiement sur Vercel avec CI/CD automatique

Fonctionnalités

Design unique et moderne créé sur Figma

Animations fluides avec Framer Motion

Formulaire de contact fonctionnel avec Nodemailer

SEO optimisé avec Next.js 15

Performance optimale (score 100 Lighthouse)

Thème de Noël saisonnier avec effets visuels

Support multilingue (FR/EN)

Déploiement automatique sur Vercel

Implémentation technique

Sections

Hook React qui active automatiquement les décorations de Noël selon la période de l'année

Code source
1export const useChristmasTheme = () => {
2 const [isChristmas, setIsChristmas] = useState(false);
3 
4 useEffect(() => {
5 const now = new Date();
6 const year = now.getFullYear();
7 const startDate = new Date(year, 11, 12); // Dec 12
8 const endDate = new Date(year + 1, 0, 3); // Jan 3
9 
10 setIsChristmas(now >= startDate && now <= endDate);
11 }, []);
12 
13 return isChristmas;
14};
Portfolio personnel — Benhouss | Benhouss