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).