Voici mon playbook de dĂ©veloppement dĂ©taillant point par point toutes les bonnes pratiques et technologies que jâutilise dans le dĂ©veloppement dâun projet web.
Jâaborde ce playbook par sections et mâĂ©tend parfois sur des sujets un peu techniques. NâhĂ©sitez pas Ă consulter la table des matiĂšres Ă droite pour lire directement les sections qui vous intĂ©ressent.
đ„ DĂ©veloppement web moderne
Câest une Ă©vidence depuis une dizaine dâannĂ©e : tout projet de plateforme web utilise le paradigme Single Page Application et api REST
Avantages:
- Un front dynamique, rapide et intelligent (logique d’affichage et de gestion du state complexe, gestion granulaire des appels API),
- Aucun rechargement de page pour une expérience utilisateur rapide et rassurante
- Utilisation des derniÚres fonctionnalités des frameworks Javascript moderne (Vue.js , React ou Angular): réactivité, composants ui réutilisables, expérience de développement moderne (hot reload, typing avec typescript, devtools intégré, écosystÚme npm)
đ Une interface mobile par dĂ©faut
MĂȘme si, en fonction des projets la navigation desktop peut encore ĂȘtre (largement) dominante (en particulier pour les sites dâentreprise) le mobile nâest plus une option depuis plusieurs annĂ©es et le design responsive mobile compatible est Ă la base de tous les frameworks CSS modernes et de tous mes projets. Jâutilise en ce moment en prioritĂ© Vue.js avec Quasar , un framework Vue.js professionnel et mobile first (design responsive, composants compatible mobile).
Les design que je propose sont tous responsives (navigation, layout, composants ou widgets).
Je veux mon app mobile
Dieu merci la hype autour des apps mobiles sâest dissipĂ©e il y a plusieurs annĂ©es et les entrepreneurs et clients ont conscience de la rĂ©alitĂ© : personne nâinstalle dâapp inconnues. Câest un choix qui est rĂ©servĂ© soit aux entreprises dĂ©jĂ bien connues de lâutilisateur soit Ă des projets pensĂ©s exclusivement pour le mobile (type jeu mobile).
Pour un projet de plateforme web, la valeur ajoutée est souvent nulle par rapport à un site mobile ready.
Dans la mĂȘme veine, la hype sur les progressive web apps a aussi fade out et pour les mĂȘme raisons. Aujourdâhui lâĂ©tat de lâart est de proposer un site pensĂ© mobile en utilisant si nĂ©cessaire des features PWA (navigation offline, service workers).
⥠Un backend performant et léger
Si les front prennent de plus en plus dâampleur, la gestion du backend suit une courbe inverse et aujourdâhui on privilĂ©gie (Ă raison) des backend plus sobres, ciblĂ©s et maintenables. Câest aussi ce que je prĂ©conise en utilisant des frameworks lĂ©gers et extrĂȘmement performants au lieu de frameworks batteries included (notamment MVC). Jâutilise aujourdâhui en prioritĂ© Python / FastAPI (en mâappuyant sur mes codebases prĂ©cĂ©dentes pour atteindre la maturitĂ© de frameworks plus poussĂ©s) et Node.js / NestJS (qui nâest pas un micro framework mais touche un sweet spot concernant les plateformes web utilisateurs classiques).
A noter que la trend vers les micro frameworks ne se dĂ©ment pas avec lâarrivĂ©e du dĂ©veloppement IA. Il nâa jamais Ă©tĂ© aussi facile de ârecoderâ des fonctionnalitĂ©s gĂ©nĂ©riques type authentification, autorisation ou emailing sur un micro framework grĂące aux LLM.
Un setup prĂȘts Ă scale
Lâautre gros avantage des micro framework orientĂ©s api REST est la possibilitĂ© de scale facilement plus tard en allant notamment vers des micro services.
Si jamais votre entreprise dĂ©colle, ce paradigme permet dâĂ©tendre les fonctionnalitĂ©s dâun projet sans limite technique et est trĂšs apprĂ©ciĂ© des dĂ©veloppeurs. Par ailleurs, d’un point de vue souverainetĂ©, le backend devient beaucoup moins dĂ©pendant dâun tiers et Ă la merci dâun abandon mĂȘme partiel des dĂ©veloppements sur le framework choisi.
REST, lâapproche pragmatique
MĂȘme si dâautres approches se dĂ©veloppent, tout le monde code en REST, un standard bien compris. Je mâengage Ă fournir une api REST pragmatique avec notamment :
- lâutilisation des verbes et statuts HTTP adaptĂ©s
- des routes toujours basées sur des ressources
- pagination et filtrage standards
đ Une base de donnĂ©es pouponnĂ©e
Pour la base de donnĂ©es il nây a plus quâun choix aujourdâhui: PostgreSQL qui est devenu le standard de facto. Câest une bdd mature, open source (aucun vendor lock in) avec de nombreuses fonctionnalitĂ©s avancĂ©es (JSON natif, recherche plein texte, nombreuses extensions, performances excellentes).
La base de donnĂ©es est gĂ©rĂ©e avec un ORM (sqlalchemy en python, typeorm en Node.js), une couche nĂ©cessaire pour la gestion des connexions, du cycle de vie des entitĂ©s et de la sĂ©curitĂ©. Il est parfois nĂ©cessaire de requĂȘter en SQL pur mais câest rarement le cas.
Par ailleurs je travaille exclusivement avec des migrations (notamment alembic en python) ce qui permet dâavoir un Ă©tat iso sur les diffĂ©rents environnements (local, preprod, prod) et de pouvoir facilement reset ou spawn des base de donnĂ©es en local (tests ou en utilisant des fixtures). Les migrations sâintĂšgrent aussi dans un paradigme agile dâĂ©volution progressive de la bdd selon les besoins (on commence toujours petit pour limiter la dette technique).
Schéma de bdd
Je design mes bases de donnĂ©es avec les meilleures pratiques. LâidĂ©e est dâavoir dâune part un schĂ©ma clair avec un minimum de redondance sauf cas particuliers (cache, performance). Dâautre part de configurer la base pour soulager le backend (vĂ©rification dâunicitĂ© avec des contraintes, gestion des enums, accĂ©lĂ©ration des performances avec des index, voire des vues, soft delete, colonnes de timestamps).
Exploration
De mon cĂŽtĂ© jâutilise Datagrip qui est un excellent explorateur me permettant de gĂ©rer facilement lâĂ©tat de la base sur plusieurs environnements ainsi que mes requĂȘtes dâanalyse ou de debug. Câest un explorateur que je recommande aux clients orientĂ© tech : je pourrais vous partager mes requĂȘtes voire configurer des vues pour un contact trĂšs direct avec les donnĂ©es.
đđœ QualitĂ© du code
đ„ž Garanties sur la qualitĂ© de code
Je prends la qualitĂ© du code trĂšs au sĂ©rieux, câest un des sujets les plus passionnants et la raison principale pour laquelle je fais du dĂ©veloppement. Jâaime respecter des principes gĂ©nĂ©raux de dĂ©veloppement comme SOLID ou DRY et ai une expĂ©rience significative sur diffĂ©rents paradigmes de programmation en particulier lâorientĂ© objet (mais aussi la programmation fonctionnelle ou lâorientĂ© Ă©vĂ©nement). Jâai aussi Ă©tĂ© influencĂ© par mes lectures sur le Domain Driven Design, une influence forte sur ma conception des backends.
La qualitĂ© du code est un vaste sujet dont j’aimerais Ă©voquer quelques points, de maniĂšre simpliste.
Limiter la dette technique
Jâessaye au maximum de limiter la duplication de la logique mĂ©tier, un point encore plus important aujourdâhui quâil ne lâĂ©tait avec lâarrivĂ©e des IA et du vibe coding. Il nâa jamais Ă©tĂ© aussi facile de gĂ©nĂ©rer de la dette technique, une dette qui sera payĂ©e des mois voire des annĂ©es plus tard et peut complĂštement tuer un projet.
Limiter les bugs en production
Un livre pourrait ĂȘtre Ă©crit lĂ dessus, mon approche consiste Ă :
- toujours relire mes commits entiĂšrement avant de merge
- mettre en place une CI sur mes projets mĂȘme simples (au minimum linting, type checking et formatting). Cela permet en plus dâĂȘtre sĂ»r de son historique git et de pouvoir revenir Ă des versions stables facilement.
- intégrer le linting au développement local via un commit hook
- mettre en place de tests unitaires dĂšs que le projet grossit, voire end to end (le test driven design nâest pas toujours un choix pragmatique pour tenir un budget compĂ©titif)
- écrire un code typé (checké par mypy ou typescript)
- déployer en continu sur la production
- limiter les conflits git au maximum graÄĂ© Ă
- un bon git flow (jâutilise le github flow)
- des commits associés à des features spécifiques
- jamais de branches ouvertes pour plus de quelques heures
- générique un historique git cohérent pour pouvoir annuler une mise à jour et déboguer facilement. Je rebase et génÚre un historique git linéaire et documenté (avec des commit messages clairs comprenant un lien vers le ticket associé)
đ±âđ» Un dĂ©veloppement ouvert aux agents IA
Je dĂ©veloppe avec assistance d’un agent IA (en l’occurence Claude Code ) et vous propose de consulter ce billet rĂ©sumant mes rĂ©flexions principales sur l’utilisation de ces outils.
D’un point de vue technique je fais en sorte que la codebase soit aussi lisible et maintenable pour un dĂ©veloppeur humain qu’un agent IA (spoiler alert c’est souvent la mĂȘme chose).
đ SĂ©curitĂ© shift left
La sécurité est un sujet transversal et complexe qui fait partie intégrante de mon travail dÚs le départ (ce que les développeurs appellent shift left websecurity).
Jây tiens dâune part car elle rejoint les bonnes pratiques dâun dĂ©veloppement web solide et professionnel et dâautre part car jâai travaillĂ© un an chez GitGuardian, une startup leader dans la cybersĂ©curitĂ© et qui mâa formĂ© Ă un certain nombre de bonnes pratiques websec.
Jâai conscience des failles principales du dĂ©veloppement web (en consultant par exemple OWASP ) et suit dans tous mes projets une roadmap sĂ©curitĂ© claire :
Authentification & autorisation - Throttling anti brute force, contrÎle des droits sur chaque route, mots de passe hachés (SHA-2+), JWT sécurisé
Protection des données sensibles - credentials stockés hors de la code base (.env, .gitignore), pas de données privées dans les logs/cookies/réponses API
PrĂ©vention des injections - Protection contre les injections SQL (avec lâORM), validation stricte des inputs (DTO), protection contre le XSS sur le contenu utilisateur
RGPD & données personnelles - Solution analytics minimale (sans nécessité de consentement cookies), minimisation des données exposées, anonymisation à la suppression de compte, page de politique claire
SĂ©curitĂ© infrastructure - AccĂšs au serveur par clĂ© SSH, accĂšs aux services par reverse proxy (Nginx), fichiers sensibles (.env, .git) non exposĂ©s, accĂšs prod restreint (crĂ©ation dâun utilisateur avec droit restreint pour lâaccĂšs SSH et le lancement de commandes sur le serveur)
Monitoring & résilience - plan de sauvegarde testé (dernier backup bdd testé, script de backup ajouté au crontab), backups bdd géographiquement distribués et chiffrés (Backblaze ). Historique des logs stockés et testés avec Loki et Grafana. Mise en place optionnelle de Sentry pour le monitoring des erreurs serveur et front.
Mises à jour réguliÚres - Paquets logiciels et OS à jour pour corriger les failles connues (bump régulier des paquets, Dockerfile configurés sur les versions latest des OS)
Ces sujets sont pris en compte dĂšs le dĂ©but du dĂ©veloppement et je rĂ©alise un point complet en mâappuyant sur un document de rĂ©fĂ©rence (google sheet partagĂ© au client) avant lâouverture de la plateforme au public.
đ DĂ©ploiement et infra
De la configuration du nom de domaine Ă la mise en production finale je mâoccupe de tout et vous propose une solution dâhĂ©bergement et de dĂ©ploiement continue clef en main.
Cette solution comporte les caractéristiques suivantes:
Conteneurisation
- DĂ©veloppement conteneurisĂ© (Docker) pour avoir des environnements local / preprod / prod ISO, minimiser les bugs en prod et accĂ©lĂ©rer lâonboarding et le dĂ©ploiement
- Déploiement des conteneurs pragmatique avec Docker compose pour un MVP ou petite plateforme. Possibilité de passer sur Kubernetes pour scale.
Traffic web
- Le trafic passe par un reverse proxy (Nginx) avant dâatteindre lâorchestrateur (Docker compose en MVP) permettant notamment une gestion du HTTPS, une meilleure sĂ©curisation (protection DDOS notamment) et une flexibilitĂ© accrue dans la configuration des domaines et sous domaines.
- Le HTTPS est géré et renouvelé automatiquement avec Certbot / Lets encrypt (certificats gratuit)
Hébergement
La solution pragmatique que jâutilise le plus souvent est le dĂ©ploiement semi-automatique sur un serveur virtuel (OVH pour rester en France, sinon DigitalOcean par exemple). LâaccĂšs au serveur se fait par SSH, la mise en place dâune couche dâinfrastructure as code (IAAC) et dâun dĂ©ploiement cloud natif nâest pas nĂ©cessaire pour des MVP mais peut ĂȘtre ajoutĂ©e ensuite.
Concernant le provisionnement du serveur, jâutilise Ansible (installation des paquets, de Docker, configuration du reverse proxy, script de backup bdd etc..) avant de peaufiner les rĂ©glages manuellement au cours du projet (lancement de commande dâimport de donnĂ©es, configuration du .env..) sans perdre de temps de dĂ©veloppement sur des sujets cloud qui sont surtout intĂ©ressants sur des projets Ă fort traffic ou forte complexitĂ© (notamment avec les micro services)
Déploiement continu
Le déploiement continu (CI / CD) est intégré de base dans tous mes projets. Tous mes commits, une fois revus sont mergés, validés par la CI et déployés automatiquement en préprod ou en production limitant ainsi le risque de bugs et facilitant le débogage et le rollback le cas échéant.
- Il nây a pas de grandes mises en production (gĂ©nĂ©ratrice de friction et dâerreurs) et les utilisateurs bĂ©nĂ©ficient de mises Ă jour quotidiennes.
- couplé à Docker le downtime est proche de zéro
Base de données
La base de donnĂ©es est intĂ©grĂ©e Ă la configuration Docker. Le script de backup est gĂ©rĂ© par Ansible, testĂ© dĂšs le dĂ©but des dĂ©veloppements et Ă la MEP finale. Je propose au client un backup sur un service externe (Backblaze) dans le cas (trĂšs rare) dâune panne matĂ©rielle ou incendie dans le datacenter.
đ Monitoring et analytics: une approche pragmatique
Monitoring
Le monitoring dâune app mise en production est parfois laissĂ© de cĂŽtĂ© mais il est intĂ©grĂ© Ă mon template web nativement. Mon dĂ©ploiement minimal contient en effet la stack monitoring Prometheus (mĂ©triques), Loki (logs) et Grafana (dashboard des visualisation) permettant pour un MVP un suivi plus que satisfaisant et extensible Ă souhait.
Concernant le suivi des bugs je peux mettre en place si nécessaire Sentry (service payant) et je branche gratuitement Uptime Robot qui alerte en cas de défaillance du site (scans de certaines pages).
A noter que dans le cas dâun projet plus consĂ©quent (startup en train de scale) jâai une expĂ©rience sur Datadog , pour un monitoring et forensic exhaustif (mais cher et coĂ»teux Ă paramĂ©trer).
Analytics
Concernant les analytics jâopte gĂ©nĂ©ralement pour une solution analytics minimale (Goat Counter ) qui permet de suivre le traffic web de maniĂšre responsable sans ĂȘtre intrusif et compatible RGPD sans nĂ©cessitĂ© de banniĂšre cookie.
Google Analytics peut ĂȘtre installĂ© sur demande mais demande une banniĂšre cookie.
Je travaille de temps en temps avec Matomo pour un suivi plus précis des interactions sur le site.
đ€ SEO: un site ouvert Ă nos amis les robots
Je ne suis pas expert SEO mais j’applique un ensemble de bonnes pratiques SEO.
Jâutilise notamment:
- un markup sémantique (headers, article..)
- des tags meta appropriés (title, description)
- une attention à la performance de chargement de la page (LCP réduit, taille des images)
- des urls claires
Je vérifie la performance des pages principales avec Lighthouse.
Server Side Rendering (SSR)
Pour les sites qui ont besoin dâun SEO particuliĂšrement performant je travaille avec Nuxt en SSR. Cela demande un peu plus de travail cĂŽtĂ© dĂ©veloppement mais permet une indexation idĂ©ale par les moteurs de recherche et IA. Cela a Ă©tĂ© le cas dans ma mission chez Kessel , une startup dans l’Ă©dition numĂ©rique
đš UX / UI ou comment rivaliser avec Da Vinci
Mon expĂ©rience de dĂ©veloppement web me permet aujourdâhui de proposer des interfaces intuitives : navigation claire, formulaires rĂ©actifs, gestion des erreurs transparentes, layouts responsifs, interfaces aĂ©rĂ©es, composants au look moderne (design material gĂ©nĂ©ralement) ou encore intĂ©gration dâune charte graphique (ou dâĂ©lĂ©ments graphiques).
Pour ce qui est du dĂ©veloppement dâinterface dâadministration, de dashboards ou de tunnels dâinscription, je fournis une solution clef en main responsive ou le client peut modifier les paramĂštres dâaffichage nĂ©cessaires.
Je rĂ©fĂ©rence de temps en temps des articles dâautoritĂ© sur ce sujet comme celui ci
En revanche je ne suis pas un expert en UX et pour des projets qui attendent un traffic consĂ©quent de la part dâutilisateurs extĂ©rieurs (et selon le budget) je prĂ©fĂšre travailler avec Elina Lapierre
Approche CSS
Lâapproche actuelle avec css et de garder le css au plus proche du markup html. Je suis dâaccord avec ces pratiques et jâutilise donc lâapproche utility-first (multiples classes utilitaires pour un contrĂŽle fin avec TailwindCSS ). Je les factorise le cas Ă©chĂ©ant avec des composants JS.
Site designers
Je travaille réguliÚrement avec des site designers comme Figma et Webflow.
đ€đœ Une gestion de projet agile et inclusive
Une gestion de projet agile et proche du client
Le dĂ©but de projet nĂ©cessite toujours un temps de rĂ©flexion et de questions pour interroger au maximum le besoin du client, en comprendre ses certitudes et ses limites. Câest le moment oĂč jâĂ©cris ou réécris des spĂ©cifications, plus ou moins techniques, que je partage au client. Ces documents permettent de dialoguer et de garder une trace utile mais sont gĂ©nĂ©ralement rapidement dĂ©synchronisĂ©s avec le dĂ©veloppement de la plateforme et câest un bon signe car ce qui compte est justement lâĂ©volution dynamique du besoin dans un contexte agile.
Inversement dĂšs le dĂ©but du dĂ©veloppement, le focus est centrĂ© sur le dialogue avec le client, des dĂ©ploiements frĂ©quents (dĂ©ploiement continu, gĂ©nĂ©ralement plusieurs fois par jour) avec Ă chaque fois un message de ma part, et des points frĂ©quents de feedbacks, de discussion du besoin et dâaffinage et priorisation du backlog.
Pour les projets plus consĂ©quents, des ateliers thĂ©matiques (fonctionnalitĂ©s, UX, retours utilisateurs) peuvent ĂȘtre intĂ©ressants pour structurer et prioriser lâeffort de dĂ©veloppement.
Dâun point de vue tooling, je travaille en ce moment avec Clickup mais je peux mâadapter aux outils du client le cas Ă©chĂ©ant. Je donne toujours au client un accĂšs admin Ă lâoutil de gestion de projet et je lâincite Ă participer activement Ă la spĂ©cification, priorisation et gestion des tickets (câest le cĆur de lâesprit agile).
đ La documentation, laisser une trace pour les gĂ©nĂ©rations futures
La documentation et la traçabilitĂ© des intentions sont un sujet important sur lequel il faut avoir une approche pragmatique et efficace. La documentation, comme la sĂ©curitĂ©, doit ĂȘtre une rĂ©flexion globale qui sâintĂšgre de maniĂšre granulaire Ă la gestion de projet comme au dĂ©veloppement.
Je ne suis pas partisan des documents longs et verbeux que personne ne lira. Ils peuvent en revanche ĂȘtre utiles pour les IA.
Ma maniÚre de procéder consiste à répartir la documentation sur 3 niveaux :
- des documents textes hors de la codebase et éditables librement pas le client
- des documents markdown intégrés à la codebase et adressés aux développeurs et agents IA
- le code lui mĂȘme (naming, commentaires)
Documentations au format texte
- partage dâun dossier drive avec le client qui regroupe les diffĂ©rentes itĂ©rations des documents de spĂ©cifications (en particulier ceux créés au dĂ©but du projet) ou des notes de rĂ©union. Ce dossier est plus une archive quâune documentation vivante.
- documents types que je partage au client:
- PRA (plan de reprise dâactivitĂ©): document centralisant les informations nĂ©cessaires au fonctionnement du projet (contacts, credentials, type dâinfra et de dĂ©ploiement utilisĂ©s, informations utiles Ă lâonboarding)
- checklist de mise en production finale Ă affiner avec le client: vĂ©rification des contenus, du fonctionnement du tooling de monitoring, des accĂšs Ă lâinfra, des backup etc..
- checklist de sécurité : voir point détaillés plus haut
- SpĂ©cifier un maximum les tickets. Les tickets (ou tĂąches) sont la source dâautoritĂ© principale sur lâintention produit juste aprĂšs le code. LâĂ©laboration dâun backlog bien spĂ©cifiĂ© et dĂ©coupĂ© est une partie importante du travail de dĂ©veloppement qui fait gagner du temps Ă tout le monde. Câest un travail qui est idĂ©alement fait Ă deux (le client / product owner et moi).
Documentation intégré à la codebase
- CrĂ©ation dâun README centralisant les informations nĂ©cessaires Ă lâonboarding, les technologies utilisĂ©es et les spĂ©cificitĂ©s Ă©ventuelles Ă connaĂźtre. Ce document sera en particulier utile aux dĂ©veloppeurs Ă qui le projet serait transmis (mĂȘme si je suis toujours joignable).
- CrĂ©ation de fichiers markdowns de documentation rĂ©sumant dâune part mes pratiques de dĂ©veloppement et la structure du projet et d’autre part des parties spĂ©cifiques de la codebase. Ces fichiers peuvent ĂȘtre aussi utiles aux dĂ©veloppeurs futurs quâaux IA.
- Un fichier CLAUDE.md est toujours prĂ©sent dans mes projets et est explicitement destinĂ© Ă Claude code (mais peut ĂȘtre exploitĂ© par dâautres modĂšles).
Code as documentation
Enfin, les plus important pour la fin: Ă©crire un code sĂ©mantique ou les intentions business sont claires. Utiliser la mĂȘme nomenclature que celle utilisĂ©e pour le produit et par le client (vocabulaire commun). Avoir un naming cohĂ©rent et explicite des fonctions, modules, classes, variables.. De maniĂšre gĂ©nĂ©rale, s’inspirer des bonnes pratiques du Domain Driven Development.
Concernant les commentaires on dit souvent quâun code clair et sĂ©mantique est un code qui ne nĂ©cessite pas Ă©normĂ©ment de commentaires.
Certains commentaires peuvent ĂȘtre utiles (les agents IA en gĂ©nĂšrent dâailleurs âgratuitementâ). Dâautres peuvent ĂȘtre superflus voire gĂȘnants car ils peuvent vite ĂȘtre obsolĂštes (Ă©volutions du code ou copier / coller) et participer Ă la crĂ©ation dâune dette technique.
Par ailleurs je fais usage de fichiers standards en développement web qui rassemblent un certain nombre de commandes que tout développeur comprendra facilement : package.json notamment mais surtout un Makefile présent dans chaque projet.
âïž Les fonctionnalitĂ©s que j’intĂšgre de base
đ„ Gestion des utilisateurs
La gestion des utilisateurs est un besoin trÚs fréquent sur les plateforme que je développe et mon template de base inclut une gestion exhaustive des utilisateurs avec notamment
- le formulaire dâinscription (email / mdp sĂ©curisĂ©). PossibilitĂ© dâintĂ©grer un login social.
- la confirmation dâinscription par email
- la gestion du mot de passe oublié et changement du mot de passe
- un espace administrateur avec gestion des utilisateurs
- une gestion des rĂŽles (Admin et Utilisateur par dĂ©faut, extensible) et dâautorisations granulaires
âïž Emailing
Mon template web comprend la gestion de lâenvoi dâemails (templates emails) envoyĂ©s par API avec Brevo .
đ Barre de recherche
Une barre de recherche peut ĂȘtre utile Ă certains projets et dans ce cas je recommande gĂ©nĂ©ralement Algolia qui est un service trĂšs performant et configurable de recherche plein texte facetĂ©e.
Pour des projets demandeurs en termes de complexitĂ© ou de volume, on peut basculer sur Elasticsearch, que jâai utilisĂ© dans plusieurs projets.
Sites Statiques (JAMstack)
Parfois rien de tout ce que jâai Ă©voquĂ© plus haut est nĂ©cessaire et seule une interface en Javascript suffit. Dans ce cas prĂ©cis (pas de bdd, pas de logique serveur, dâutilisateurs etc), il est plus cohĂ©rent de dĂ©ployer un site statique sur un CDN (type netlify ou Vercel) ce qui permet dâobtenir une haute disponibilitĂ© et dâexcellentes performance pour un trĂšs faible coĂ»t en terme de dev.
Câest le choix que jâai fait pour ce blog ! (Hugo , html sĂ©mantique, TailwindCSS, JS vanilla, CDN Netlify)
Dans le cas oĂč il est nĂ©cessaire aux admins dâĂ©diter du contenu rĂ©guliĂšrement un CMS peut ĂȘtre prĂ©fĂ©rable et intĂ©grable de maniĂšre autonome ou associĂ© Ă une plateforme web existante.
Jâai travaillĂ© notamment avec Strapi , une solution CMS headless qui permet de dĂ©coupler la gĂ©nĂ©ration de contenu de lâaffichage qui peut ĂȘtre fait directement en JAMStack (cependantStrapi nĂ©cessite d’ĂȘtre dĂ©ployĂ© sur un serveur).