Mode d'emploi â de zĂ©ro Ă dĂ©ployĂ©
Vitrine
Site vitrine pour prĂ©senter une activitĂ© : services, Ă propos, contact. Pas de compte utilisateur, pas de base de donnĂ©es â le strict nĂ©cessaire.
Sommaire
01Initialiser le projet Next.js
02Structurer les pages
03Formulaire de contact
04SEO de base
05DĂ©ploiement â Vercel
RĂšgle du jeu : tu tapes chaque commande toi-mĂȘme dans ton terminal, dans l'ordre. Tu ne passes Ă l'Ă©tape suivante que quand la case « vĂ©rification » est cochĂ©e. Si une commande plante, copie-colle l'erreur exacte â on corrige ensemble, tu ne devines pas.
RĂ©utilisable vs spĂ©cifique : les Ă©tapes rĂ©utilisable sont valables pour n'importe quel projet de ta stack. Les Ă©tapes spĂ©cifique sont propres Ă un site vitrine â adapte le contenu (pages, textes) au tien.
đ C'est quoi chaque techno (Next.js, Tailwind, shadcn/ui...) ? Le lexique complet est sur la page d'accueil â
RĂ©utilisable vs spĂ©cifique : les Ă©tapes rĂ©utilisable sont valables pour n'importe quel projet de ta stack. Les Ă©tapes spĂ©cifique sont propres Ă un site vitrine â adapte le contenu (pages, textes) au tien.
01
Réutilisable
Initialiser le projet Next.js
Un projet Next.js qui dĂ©marre en local, avec Tailwind et shadcn/ui prĂȘts Ă l'emploi.
Prérequis : Node.js installé. Terminal ouvert dans le dossier du projet.
-
Installe pnpm si besoin
npm install -g pnpm
pnpm est le gestionnaire de paquets choisi pour ce projet â plus rapide et plus Ă©conome en espace disque que npm.đ Comment voir le rĂ©sultat : tapepnpm -v. Un numĂ©ro de version s'affiche (ex.9.12.0) â sinon l'installation a Ă©chouĂ©. -
Crée le projet Next.js
pnpm create next-app@latest . --typescript --tailwind --eslint --app --src-dir=false --import-alias "@/*"
Le nom du dossier ne doit pas contenir de majuscules (contrainte npm). S'il en contient, crĂ©e le projet dans un dossier temporaire au nom valide puis dĂ©place tout son contenu dans ton dossier de travail.đ Comment voir le rĂ©sultat : tapels. Tu dois voir apparaĂźtreapp/,package.json,tailwind.config.tsâ la commande a rempli ton dossier de fichiers. -
Initialise shadcn/ui
pnpm dlx shadcn@latest init
Ăa crĂ©ecomponents.jsonetlib/utils.ts, et prĂ©pare Tailwind pour recevoir des composants shadcn/ui prĂȘts Ă copier.đ Comment voir le rĂ©sultat : tapels components.json lib/utils.tsâ les deux fichiers doivent exister, sans message d'erreur « No such file ». -
Crée l'arborescence du projet
mkdir -p lib/auth lib/db lib/validations prisma tests
On sĂ©pare dĂšs le dĂ©part : authentification, accĂšs base de donnĂ©es, schĂ©mas de validation. Ăa Ă©vite le fichier fourre-tout de 2000 lignes plus tard.đ Comment voir le rĂ©sultat : tapels libâ les dossiersauth,db,validationsdoivent apparaĂźtre. -
Initialise Git et fais le premier commit
git init git add -A git commit -m "chore: init projet Next.js"
đ Comment voir le rĂ©sultat : tapegit log --onelineâ une ligne avec ton message de commit doit s'afficher. -
Lance le serveur et vérifie
pnpm dev
Ouvrehttp://localhost:3000. Si tu as une erreur 500 mentionnant un module introuvable (ex.Can't resolve 'xxx') alors qu'il est bien danspackage.json: supprimenode_modules,pnpm-lock.yamlet.next, relancepnpm installpuispnpm dev. C'est presque toujours une installation incomplĂšte, pas un bug de code.đ Comment voir le rĂ©sultat : dans ton navigateur, ouvrelocalhost:3000. Tu dois voir la page d'accueil par dĂ©faut de Next.js (logo, liens « Docs », « Deploy »). Le terminal afficheReadyet n'affiche pas d'erreur rouge.
Vérification
02
Spécifique vitrine
Structurer les pages
Une arborescence claire : Accueil, Services, Ă propos, Contact.
Prérequis : étape 1 validée.
-
Liste les pages nĂ©cessaires avant de coderĂvite d'improviser l'arborescence au fil de l'eau â note juste les 3-5 pages dont le site a vraiment besoin.
-
CrĂ©e un en-tĂȘte et un pied de page partagĂ©s
components/header.tsx components/footer.tsx
ImportĂ©s dansapp/layout.tsxâ Ă©vite de dupliquer la navigation sur chaque page.đ Comment voir le rĂ©sultat : une fois importĂ©s danslayout.tsx, retourne surlocalhost:3000â ton en-tĂȘte et ton pied de page doivent apparaĂźtre, et rester identiques si tu changes de page. -
Crée une page par section
app/page.tsx # Accueil app/services/page.tsx app/a-propos/page.tsx app/contact/page.tsxDans le dossierapp/de Next.js, chaque sous-dossier contenant un fichierpage.tsxdevient une URL du mĂȘme nom.đ Comment voir le rĂ©sultat : ouvrelocalhost:3000/services,/a-proposet/contactdans le navigateur. Chaque URL doit afficher son contenu â pas de page « 404 This page could not be found ». -
Ajoute les composants shadcn/ui nécessaires
pnpm dlx shadcn@latest add button card
đ Comment voir le rĂ©sultat : tapels components/uiâbutton.tsxetcard.tsxdoivent apparaĂźtre, prĂȘts Ă ĂȘtre importĂ©s dans tes pages.
Vérification
03
Spécifique vitrine
Formulaire de contact
Recevoir un message par email, sans base de données à gérer.
Prérequis : étape 2 validée.
-
Choisis un service d'envoi d'emailPas besoin de stocker le message en base pour un simple formulaire de contact â un envoi direct par email suffit. Resend a un plan gratuit largement suffisant pour dĂ©marrer.
-
Installe le SDK
pnpm add resend
đ Comment voir le rĂ©sultat : ouvrepackage.jsonâresenddoit apparaĂźtre dansdependencies. -
Ajoute la clé API dans
.env# .env RESEND_API_KEY="ta-clé"
đ Comment voir le rĂ©sultat : pas d'effet visible tout de suite â cette clĂ© sera testĂ©e concrĂštement Ă l'Ă©tape suivante, quand le formulaire enverra un vrai email. -
Ăcris la Server Action d'envoi
"use server"; import { Resend } from "resend"; const resend = new Resend(process.env.RESEND_API_KEY); export async function sendContact(formData: FormData) { const email = formData.get("email"); const message = formData.get("message"); await resend.emails.send({ from: "site@tondomaine.com", to: "toi@tondomaine.com", subject: "Nouveau message du site", text: `${email}\n\n${message}`, }); }Valideemailetmessageavec Zod avant l'envoi â bloque les champs vides ou les emails mal formĂ©s.đ Comment voir le rĂ©sultat : remplis le formulaire surlocalhost:3000/contactavec un vrai email et envoie-le. VĂ©rifie ta boĂźte de rĂ©ception (et les spams) â le message doit arriver en quelques secondes.
Vérification
04
Réutilisable
SEO de base
Que le site soit correctement référencé et compris par Google.
Prérequis : étape 3 validée.
-
Renseigne les métadonnées
// app/layout.tsx export const metadata = { title: "Nom de ton activitĂ©", description: "Une phrase claire sur ce que tu proposes.", };C'est ce texte qui s'affiche dans l'onglet du navigateur et dans les rĂ©sultats Google.đ Comment voir le rĂ©sultat : rechargelocalhost:3000et regarde l'onglet du navigateur â le nouveau titre doit y ĂȘtre affichĂ© Ă la place de « create-next-app ». -
Ajoute un sitemap et un robots.txt
app/sitemap.ts app/robots.ts
Deux fichiers spĂ©ciaux Next.js qui indiquent Ă Google quelles pages explorer.đ Comment voir le rĂ©sultat : ouvrelocalhost:3000/sitemap.xmletlocalhost:3000/robots.txtâ chacune doit afficher du texte structurĂ©, pas une page d'erreur. -
Utilise
next/imagepour toutes les imagesCompression et chargement diffĂ©rĂ© automatiques â un site plus rapide se classe mieux.đ Comment voir le rĂ©sultat : clic droit sur une image affichĂ©e â « Inspecter » â la balise doit avoir un attributsrcsetgĂ©nĂ©rĂ© automatiquement, avec plusieurs tailles d'image.
Vérification
05
Réutilisable
DĂ©ploiement â Vercel
Une URL publique et fonctionnelle.
Prérequis : étape 4 validée.
-
Pousse le code sur GitHub
git remote add origin URL-DE-TON-DEPOT git push -u origin masterđ Comment voir le rĂ©sultat : rafraĂźchis la page du dĂ©pĂŽt sur GitHub dans ton navigateur â tes fichiers doivent y apparaĂźtre. -
Importe le projet sur VercelSur vercel.com â Add New â Project â sĂ©lectionne le dĂ©pĂŽt GitHub.đ Comment voir le rĂ©sultat : le tableau de bord Vercel passe de « Building » à « Ready » (quelques dizaines de secondes), avec un lien de prĂ©visualisation cliquable.
-
Ajoute
RESEND_API_KEYdans les variables d'environnementSettings â Environment Variables â sans ça le formulaire de contact ne fonctionnera pas en production.đ Comment voir le rĂ©sultat : pas d'effet visible immĂ©diatement â redĂ©ploie (bouton « Redeploy ») puis teste le formulaire en production Ă l'Ă©tape suivante. -
DĂ©ploie et vĂ©rifie en ligneOuvre l'URL fournie par Vercel, teste le formulaire de contact pour de vrai.đ Comment voir le rĂ©sultat : le site s'affiche sur l'URL
*.vercel.app, et un message envoyĂ© depuis ce formulaire en ligne arrive bien dans ta boĂźte mail â comme en local, mais pour de vrai.
Vérification