Construis un vrai site e-commerce avec React Router 7, Stripe, Prisma et Tailwind. Prends confiance et prépare-toi à briller en freelance !
Tu as (presque) tout vu : routing avancé, loaders, actions, formulaires type-safe, déploiement Docker, SEO... Il manque encore une pièce au puzzle : mettre tout ça au service d’une vraie application métier. Bienvenue dans le module « On développe un projet React Router 7 » !
Ici, on oublie les petits snippets isolés : tu vas coder un site e-commerce complet, avec gestion de produits, panier, paiement Stripe et e-mails transactionnels. Objectif : en sortie de module, tu auras un repo clonable que tu pourras montrer à un recruteur ou déployer pour un client freelance – sans coller l’étiquette “exercice scolaire”.
Fonctionnalité | Technos & bonnes pratiques |
---|---|
Catalogue + pages produit | loader() (côté serveur), cache Cache-Control , données structurées Product |
Panier persisté | Context + useFetcher() , UI optimiste |
Paiement sécurisé | Stripe Checkout côté serveur (no secret côté client) |
Gestion des commandes | Prisma + relation Order ⇆ OrderItem |
E-mails transactionnels | Resend + templates React |
Tableau admin light | Routes protégées + role-based access (requireUser({ role: "admin" }) ) |
SEO d’un site e-commerce | Balises meta prix, JSON-LD Product , sitemap dynamique |
Déploiement production | Docker multi-stage, GitHub Actions, reverse proxy Caddy |
Le squelette est disponible sur GitHub :
1git clone https://github.com/Varkoff/shop-router.git2cd shop-router3npm install
Organisation principale :
1shop-router/2├── prisma/3│ └── schema.prisma # modèles Product, Order, User déjà esquissés4├── app/5│ ├── routes/ # pages React Router 76│ ├── components/ # UI shadcn + composants maisons7│ └── server/ # helpers Stripe, Resend, sessions8└── docker-compose.yml # stack dev (Postgres + App)
Le projet compile et lance la page par défaut React Router 7. On va l’enrichir bloc par bloc.
/product/:slug
, JSON-LD Product
.useFetcher()
pour l’UI optimiste, session panier en cookie, redirection sécurisée vers Stripe, web-hook de confirmation.role === "admin"
).1# ① Cloner + installer les deps (si pas déjà fait)2git clone https://github.com/Varkoff/shop-router.git3cd shop-router4git checkout 1-initialisation-du-projet5npm install67# ③ Lancer le projet8npm run dev
Prêt ? Je t’attends de l’autre côté !