Bao-Link
Retour aux articles

Architectures Frontend : Choisir la Bonne Stack et Méthodologie

Schéma d'architecture montrant différentes méthodologies d'organisation du code frontend
Partager
LinkedIn X (Twitter) WhatsApp

Comparez Atomic Design, BEM, Feature-based et plein d'autre méthodologies: Des approches pour organiser votre code frontend. Guide de décision, cas d'usage et combinaisons possibles.

Roadmap — Développement

Carte interactive

Cette roadmap est conçue pour une navigation sur écran d'ordinateur. Pour une expérience optimale, ouvrez cette page sur un écran plus large.

Design System
50%

des équipes frontend ont un design system : le standard de l'industrie

  Telerik 2024 Designer-Developer Survey 

Productivité
+34%

de tâches complétées plus rapidement avec un design system mature

  Figma 2025 : Design Systems Report 

Coûts Développement
-30%

de réduction grâce à la réutilisation de composants et la réduction de dette technique

  McKinsey 2024 : DesignOps Institute 

CSS Architecture
40%

des entretiens techniques couvrent l'architecture CSS : un enjeu réel pour les équipes

  Scriptnex 2025 

Le Contexte

Pourquoi le choix de l'architecture frontend compte ?

Quand votre projet dépasse 20 composants, le choix de l’architecture frontend devient critique.

Deux décisions clés structurent votre projet :

  • L’organisation du code : Atomic Design, BEM, Feature-based : comment structurer vos composants et votre CSS
  • Le framework : React, Vue, Svelte, Astro : quelle technologie pour l’affichage

Chaque approche résout un problème différent, et elles peuvent se combiner. Le choix dépend de votre projet, pas de la tendance du moment.

🧠
L'analogie de la construction

L’architecture frontend, c’est comme construire une maison :

  • L’organisation du code (Atomic Design, BEM, Feature-based) = le plan architectural : comment structurer les pièces, les étages, les passages
  • Le framework (React, Vue, Svelte, Astro) = le matériau choisi (bois OU béton OU acier) : vous en choisissez UN selon vos besoins

Le plan (architecture) reste le même quel que soit le matériau (framework). Mais un bon plan avec un matériau inadapté ne fonctionne pas. Choisissez d’abord le plan, puis le matériau.

Partie 1 : Méthodologies d’Organisation

Atomic Design : La composition hiérarchique

Objet : Organiser les composants en 5 niveaux : atoms → molecules → organisms → templates → pages. Quand l’utiliser : Design System, bibliothèque de composants réutilisables. Principe : Chaque niveau compose le précédent pour créer des interfaces complexes.

text
atoms/      ← Button, Input, Icon, Label
molecules/  ← SearchBar, CartItem, LoginForm
organisms/ ← Header, Footer, ProductGrid
templates/ ← LandingPage, Dashboard
pages/     ← index.tsx, product.tsx

BEM : La convention CSS

Objet : Convention de nommage CSS : .block__element--modifier. Quand l’utiliser : Tout projet CSS, quelle que soit la taille. Principe : Chaque classe a un nom unique qui décrit sa fonction dans la hiérarchie.

css
/* Block = le composant principal */
.cart { }

/* Element = un élément enfant du block */
.cart__item { }
.cart__total { }

/* Modifier = une variation du block ou de l'element */
.cart__item--featured { }
.cart--checkout { }

Feature-based : L'organisation par domaine

Objet : Organiser les fichiers par domaine métier (features/cart/, features/auth/). Quand l’utiliser : Applications métier complexes, multi-équipes. Principe : Tout pour une feature est au même endroit : composants, hooks, utils, styles.

text
features/
├── cart/
│   ├── components/    ← CartItem, CartSummary
│   ├── hooks/         ← useCart
│   ├── utils/         ← formatPrice
│   └── styles/        ← cart.css
├── auth/
│   ├── components/    ← LoginForm, SignupForm
│   ├── hooks/         ← useAuth
│   └── utils/         ← validateEmail

Comparatif des 3 Approches

CritèreAtomic DesignBEMFeature-based
ObjetComposition de composantsNommage CSSOrganisation de dossiers
Quand l'utiliserDesign System, bibliothèqueTout projet CSSApps métier complexes
Échelle20+ composantsToute taille50+ composants, multi-équipes
Courbe d'apprentissageMoyenneBasseMoyenne
RéutilisabilitéInter-featuresIntra-projetIntra-feature
Scalabilité équipeBonneBonneExcellente

Guide de Décision : Quelle Approche pour Quel Projet ?

  • Petit projet (< 20 composants, 1 développeur)

    BEM suffit. Convention CSS claire, pas de tooling complexe. Organisez votre CSS par block et laissez la structure de dossiers simple (`components/`, `styles/`).

  • Design System ou bibliothèque de composants

    Atomic Design est idéal. La composition hiérarchique (atomes → molécules → organismes) crée un langage commun entre design et développement. Ajoutez Storybook pour documenter.

  • Application métier complexe (50+ composants, 2+ équipes)

    Feature-based pour l'isolation par domaine. Chaque équipe possède sa feature (auth, cart, dashboard) avec ses composants, hooks et utils. Réduisez les conflits de fusion.

  • Projet avec les 3 besoins

    Combinez les approches : Feature-based pour l'organisation des dossiers, Atomic Design pour la composition des composants, BEM pour le nommage CSS. Chaque méthode gère un aspect différent.

Combiner les Méthodologies

i
Information

Ces trois approches ne sont pas mutuellement exclusives. Vous pouvez les combiner pour couvrir chaque aspect de votre architecture :

Feature-based + Atomic Design

Feature-based gère l’organisation des dossiers (par domaine métier). Atomic Design gère la composition des composants au sein de chaque feature.

text
features/
├── cart/
│   ├── atoms/        ← Button, Input, Icon
│   ├── molecules/    ← CartItem, PriceTag
│   └── organisms/    ← CartSummary, CartHeader
├── auth/
│   ├── atoms/
│   ├── molecules/    ← LoginForm, SignupForm
│   └── organisms/    ← AuthModal

Feature-based + BEM

Feature-based gère les dossiers. BEM gère le nommage CSS au sein de chaque feature.

css
/* features/cart/styles/ */
.cart { }
.cart__item { }
.cart__item--featured { }
.cart__total { }

/* features/auth/styles/ */
.auth { }
.auth__form { }
.auth__form--login { }

Les 3 ensemble

Pour les grands projets : Feature-based (dossiers) + Atomic Design (composants) + BEM (CSS).

text
features/cart/
├── atoms/
│   ├── Button/
│   │   ├── Button.jsx
│   │   ├── Button.stories.jsx
│   │   └── button.css    ← .cart__button {}
├── molecules/
│   └── CartItem/
│       ├── CartItem.jsx
│       └── cart-item.css  ← .cart__item {}
└── organisms/

Cas d’Usage Concret : Migration Progressive

Étape 1
Audit

Identifier les zones à risque : doublons, incohérences, temps de navigation

  State of Frontend 2024 

Étape 2
BEM

Appliquer la convention CSS existante pour nettoyer le nommage

  bem.info : Yandex 

Étape 3
Atomic

Extraire les composants réutilisables en atomes/molécules/organismes

  atomicdesign.bradfrost.com 

Étape 4
Feature

Regrouper par domaine métier quand les équipes dépassent 5 personnes

  polaris.shopify.com 

📖
Astuce

Approche progressive : Ne migratez pas tout d’un coup. Commencez par BEM (le plus simple), ajoutez Atomic Design quand vous avez besoin de réutilisabilité, passez à Feature-based quand les équipes grandissent.

🧠
L'analogie de la cuisine

Atomic Design = la recette qui dit comment assembler les ingrédients (atomes → molécules → plats). BEM = l’étiquetage des bocaux dans les placards (chaque ingrédient a un nom unique). Feature-based = l’organisation de la cuisine par recette (tout pour le gâteau est au même endroit).

Partie 2 : Choisir son Framework

Comparatif des Frameworks

CritèreReactVueSvelteAstro
TypeBibliothèque UIFramework progressifCompilateurFramework content-first
Part de marché42%18%8%4%
PerformanceBonne (Virtual DOM)Bonne (Proxy)Excellente (compilation)Excellente (zéro JS)
Courbe d'apprentissageMoyenneBasseBasseBasse
ÉcosystèmeMassif (npm)MatureEn croissanceEn croissance
SSR/SSGNext.js, RemixNuxtSvelteKitNatif

Guide de Décision : Quel Framework pour Quel Projet ?

  • Site vitrine / blog

    Astro : Zéro JS par défaut, performance maximale, SEO excellent. Idéal pour le contenu statique et les sites orientés performance.

  • App SaaS complexe

    React : Écosystème massif, state management mature. Ajoutez Next.js uniquement si vous avez besoin de SSR/SSG pour le SEO ou d'un backend intégré. Pour un outil interne, React seul suffit.

  • App moyenne

    Vue + Nuxt : Syntaxe intuitive, progressif, documentation excellente. Parfait pour les équipes qui veulent simplicité et productivité.

  • Animation / jeu

    Svelte : Performance native, compilation sans Virtual DOM. Le framework le plus rapide pour les interfaces riches en animations.

  • Dashboard admin

    React ou Vue : Composants riches, bibliothèques UI (MUI, Ant Design, Vuetify). Les deux offrent un écosystème mature pour l'enterprise.

  • E-commerce

    Astro ou Next.js : Astro pour le catalogue (SSG), Next.js pour le panier temps réel (SSR). Les deux gèrent le SEO.

Bibliothèque vs Implémentation Maison : Le Dilemme du Développeur

Faut-il utiliser une bibliothèque existante ou créer sa propre solution ?

CritèreBibliothèqueImplémentation Maison
Temps de mise en place⚡ Rapide🐢 Lent
Maintenance✅ Géré par la communauté⚠️ À votre charge
Personnalisation⚠️ Limitée par l'API✅ Totale
Taille (bundle)⚠️ Parfois lourde✅ Optimale
Accessibilité✅ Souvent testée⚠️ À tester soi-même
Apprentissage📚 Courbe d'apprentissage🎯 Connaissances internes
📖
Astuce

Règle pratique : Si la bibliothèque fait < 20% du travail et vous pousse à contourner 80% du temps, implémentez-le maison. Sinon, utilisez la bibliothèque.

?
Note

Vue et Svelte n’ont pas d’article dédié dans la bambouseraie. Car **je me suis spécialisé **coté frontend dans React, NextJs et Astro, je ne voudrais pas crée de contenu erroné sur un framework que je n’utilise pas régulièrement.

🧠
L'analogie des transports

React = la voiture : polyvalente, écosystème massif, partout dans le monde. Vue = le tramway : simple, efficace, parfait pour les trajets définis. Svelte = le vélo électrique : léger, rapide, zéro émission. Astro = le train à grande vitesse : performant pour les longues distances (contenu statique).

?

Cloud Hébergement

Comment choisir entre o2switch, Vercel, Hetzner et Cloudflare pour héberger votre frontend ?

Découvrez l'article complet
en un clic

Comparer les Hébergeurs

Partie 3 : Au-delà des 3 Approches

CSS Methodologies : Organiser votre Style

Le CSS a ses propres patterns. BEM est le plus connu, mais pas le seul :

MéthodologieSignificationPrincipeQuand l'utiliser
BEMBlock Element Modifier.block__element--modifier : convention de nommageLe plus simple, tout projet
OOCSSObject-Oriented CSSSépare structure (layout) et skin (visuel)Haute réutilisabilité visuelle
SMACSSScalable & Modular Architecture for CSS5 catégories : Base, Layout, Module, State, ThemeSites à contenus distincts
ITCSSInverted Triangle CSSTriangle inversé : Settings → Tools → Generic → Elements → Objects → Components → UtilitiesGrandes équipes, enterprise
📖
Astuce

Combo courante : BEM pour le nommage + ITCSS pour la structure. C’est le standard de l’industrie pour les projets scalables.

Patterns Composants : Créer des Composants Réutilisables

Au-delà d’Atomic Design, d’autres patterns existent :

PatternDescriptionQuand l'utiliser
Atomic DesignHiérarchie atoms → molecules → organisms → templates → pagesDesign Systems
Compound ComponentsParent gère l'état via Context, enfants composent ensembleTabs, modals, dropdowns
Headless ComponentsExpose la logique sans markup (ex: useCombobox()) : le composant gère l'état, les événements et l'accessibilité, mais c'est vous qui définissez le HTML renduBibliothèques accessibles (Radix UI, Headless UI, React Aria)
Custom HooksLogique réutilisable via use*React moderne, composition
Container/PresentationalContainers = logique, Presentational = UISéparation nette, Storybook
i
Information

Headless = “sans markup” = pas de HTML imposé. Vous définissez votre propre structure HTML et CSS, la bibliothèque gère uniquement la logique (état, événements, accessibilité). À ne pas confondre avec “unstyled” qui fournit le HTML mais pas le CSS. Découvrir les autres types de composantsComposants UI : Le Hub de votre Design SystemArticleComposants UI : Le Hub de votre Design SystemConstruisez et organisez votre bibliothèque de composants UI : design tokens, atomic design, Figma ↔ code, Storybook, et workflow complet du design au déploiement.

?

Design Patterns Classiques

Singleton, Factory, Observer, Strategy : quels patterns GoF sont réellement utiles en frontend ?

Bientôt disponible

En cours de rédaction

Cet article est en cours de rédaction. Inscrivez-vous à la newsletter pour être averti de sa publication.

Newsletter

Un récap par mois de ce qui a vraiment compté. Pas de spam, promis.

Structure de Projet : Organiser les Dossiers

Comment organiser vos fichiers au-delà de Feature-based ?

PatternStructureQuand l'utiliser
Flat (by type)components/, hooks/, utils/Petits projets, prototypes
Domain-Driven-Design (DDD)user/, order/, payment/Apps métier complexes
Feature-basedfeatures/cart/, features/auth/Multi-équipes
Feature-Sliced Designapp/ > pages/ > widgets/ > features/ > entities/ > shared/Tendance 2025 : le plus recommandé
i
Information

Feature-Sliced Design (FSD) est devenu le pattern de référence en 2025. Il aligne le code avec les besoins métier et impose des frontières claires entre les modules.


Des zones d'ombre ?

Faut-il choisir UNE seule approche ?
Non. Les approches sont complémentaires : BEM pour le CSS, Atomic Design pour la composition, Feature-based pour l'organisation, ITCSS pour la structure. Un projet peut utiliser plusieurs méthodologies.
Quelle approche en premier ?
BEM si vous démarrez : c'est le plus simple. Atomic Design si vous créez un Design System. Feature-based si vous avez plusieurs équipes. FSD si vous voulez la tendance 2025.
Et avec Tailwind ?
Tailwind remplace partiellement BEM (pas besoin de conventions de classes). Mais Atomic Design et Feature-based restent pertinents pour la composition et l'organisation.
Faut-il une bibliothèque de composants ?
Ça dépend du contexte. Pour un projet simple, non. Pour un Design System partagé, oui. La question est : le temps gagné justifie-t-il la dépendance ? Si vous passez plus de temps à contourner la bibliothèque qu'à l'utiliser, implémentez-le maison.
Comment choisir entre SSR, SSG et CSR ?
SSG (Astro) pour le contenu statique. SSR (Next.js) pour le SEO + interactivité. CSR pour les apps internes sans SEO. La plupart des projets modernes mixent les approches (Islands).
Ces approches fonctionnent avec tous les frameworks ?
Oui. React, Vue, Svelte, Astro : les méthodologies sont framework-agnostic. Seule l'implémentation technique diffère.

Architectures Frontend : Les Points de Passage

0/9

Vos progrès sont sauvegardés localement sur votre appareil. Aucune donnée n'est collectée. La durée de conservation dépend de la durée de rétention des données de votre navigateur.

"

Le meilleur choix d’architecture frontend, c’est celui qui évolue avec votre projet : pas celui qui suit la dernière tendance.

Gaëtan Solis
Gaëtan Solis
Fondateur, Bao-Link
Orfèvre Digital

Prêt à lancer votre projet ?

Je donne vie à vos idées en créant des sites web et applications intuitifs, esthétiques et fonctionnels.

Orfèvre Digital
Disponible
En savoir plus

Articles du Cluster

1

Articles Connexes

4+9
Design Patterns : Les Patterns qui Structurent le Web Moderne
Cluster Brouillon Connexe

Design Patterns : Les Patterns qui Structurent le Web Moderne

Vue d'ensemble des design patterns frontend, backend, CSS, composants, state management et anti-patterns. Guide de décision pour choisir le bon pattern selon votre contexte.

Composants React
Cluster Brouillon Connexe

Composants React

Créez des composants React réutilisables avec les patterns Atom/Molecule/Organism. Maîtrisez les props, le state et la composition de composants.

Composants Astro
Brouillon Connexe

Composants Astro

Maîtrisez les composants Astro (.astro) avec leurs slots, props et patterns. Créez des composants performants avec zero JavaScript par défaut.

CSS Moderne : Container Queries, CSS Nesting et Nouvelles API
Cluster Brouillon Connexe

CSS Moderne : Container Queries, CSS Nesting et Nouvelles API

Explorez les API CSS les plus récentes : Container Queries, CSS Nesting, @layer, la pseudo-classe :has() et les sélecteurs modernes. Techniques qui redéfinissent l'écriture du CSS.

Variables CSS Avancées : Dark Mode, Thèmes Dynamiques et Custom Properties
Brouillon Connexe

Variables CSS Avancées : Dark Mode, Thèmes Dynamiques et Custom Properties

Maîtrisez les variables CSS avancées : thème dark/light automatique, fallbacks robustes, manipulation JavaScript et cas d'usage concrets pour des thèmes dynamiques.

Atomic Design : Architecture de Composants UI
Connexe

Atomic Design : Architecture de Composants UI

L'Atomic Design est une méthodologie de conception de systèmes de composants UI. Organisez votre bibliothèque en Atomes, Molécules, Organismes, Templates et Pages.

BEM : La Convention CSS qui Structure votre Code
Brouillon Connexe

BEM : La Convention CSS qui Structure votre Code

Maîtrisez BEM (Block Element Modifier) : nommage, structure de dossiers, états, et combinaison avec Atomic Design. Convention CSS claire pour tout projet.

Feature-based Architecture : Organiser par Domaine Métier
Brouillon Connexe

Feature-based Architecture : Organiser par Domaine Métier

Adoptez l'architecture Feature-based pour structurer votre projet frontend par domaine métier. Composants, hooks, utils, styles : tout dans une feature.

Monorepos et Workspaces : Organiser Plusieurs Applications en un Seul Dépôt
Brouillon Connexe

Monorepos et Workspaces : Organiser Plusieurs Applications en un Seul Dépôt

Guide complet des monorepos : pnpm workspaces, Turborepo, Nx et Lerna. Comparaison, arborescence, CI/CD et cas d'usage concrets.

React : La Bibliothèque UI la Plus Utilisée au Monde
Cluster Connexe

React : La Bibliothèque UI la Plus Utilisée au Monde

React est la bibliothèque JavaScript la plus utilisée pour créer des interfaces utilisateur. Maîtrisez les composants, les hooks, le state management et l'écosystème React.

Astro : Le Framework Web Orienté Contenu
Cluster Connexe

Astro : Le Framework Web Orienté Contenu

Astro est le framework web optimisé pour le contenu. Créez des sites rapides avec l'architecture Islands, zéro JavaScript par défaut et multi-frameworks.

Custom Hooks React
Brouillon Connexe

Custom Hooks React

Créez des hooks personnalisés pour réutiliser la logique d'état et d'effets secondaires. Découvrez les patterns avancés de composition de hooks.

Islands Architecture
Connexe

Islands Architecture

L'Islands Architecture d'Astro permet d'isoler les composants interactifs en îlots de JavaScript, optimisant les performances au maximum.

Inspiration

Découvrez d'autres projets

Voir le portfolio
Développement 16 juillet 2026

ACM : Refonte E-commerce avec Astro, Express & WordPress

Étude de cas complète : migration d'un site e-commerce WordPress/WooCommerce vers une architecture Astro SSR + proxy Express, avec déploiement et optimisation SEO.

Astro Astro Express Express WordPress WordPress
Voir le projet
Développement 16 juillet 2026

Soair : La Transition Numérique Complète

Étude de cas complète : création d'un site WordPress professionnel puis migration vers Hugo pour des performances optimales et un SEO décuplé.

# Soair WordPress WordPress Hugo Hugo
Voir le projet
Prêt pour l'aventure

Besoin d'un
expert ?

Discutons ensemble de vos objectifs et transformons votre vision en une réalité performante et pérenne.

Prêt pour l'aventure

Suivez Bao-Link

Et restez informé des nouveaux articles et projets.

ou

Newsletter

Un récap par mois de ce qui a vraiment compté. Pas de spam, promis.