Aller au contenu

Choix techniques

Cette page récapitule les outils et plateformes retenus par Atlas, et surtout pourquoi : pour chaque choix, le contexte, l’alternative écartée et le compromis. Le pourquoi durable et structurant est tracé dans les ADR ; cette page en donne le résumé. Les choix sont regroupés par usage — langage, front-end, serveurs, données, tests, outillage du dépôt.

À la base, JavaScript : le langage du Web, le seul qui s’exécute nativement dans tous les navigateurs. Sa spécification, ECMAScript, est gouvernée par le comité TC39 (membres : éditeurs de navigateurs, entreprises, experts) et publie une révision chaque année ; les moteurs des navigateurs et de Node.js l’implémentent au fil de l’eau. JavaScript est rapide à écrire mais non typé : une faute (passer un nombre là où une chaîne est attendue) ne se voit qu’à l’exécution.

C’est précisément ce manque qui a fait naître TypeScript (Microsoft, 2012) : un sur-ensemble de JavaScript qui ajoute des types statiques vérifiés à la compilation, puis s’efface (il se compile en JavaScript ordinaire). On écrit du JavaScript moderne, mais le compilateur attrape les erreurs de type avant l’exécution.

Atlas l’utilise sur tout le dépôt, en mode strictTypeChecked : les erreurs de typage bloquent la compilation. Le prix à payer — une étape de compilation et une rigueur de typage parfois verbeuse — est assumé : il achète une classe entière de bugs détectés au plus tôt. Voir Style de code.

SvelteKit pour toutes les applications utilisateur. SvelteKit est un framework web qui couvre à la fois le rendu côté serveur (SSR) et le rendu côté navigateur, à partir d’un seul code source.

Atlas l’a retenu pour :

  • la concision de la syntaxe Svelte (peu de cérémonie autour des composants),
  • le rendu serveur natif (important pour l’accessibilité et le SEO),
  • un bundle léger produit à la compilation.

Bootstrap comme système de design de base : grille responsive, composants accessibles, palette de couleurs. Permet d’avoir une cohérence visuelle entre les applications sans dépendre d’un designer dédié.

Hono pour les services HTTP (catégorie services/). Hono est un framework HTTP minimaliste, typé, qui tourne sur Node.js — l’environnement qui exécute du JavaScript côté serveur, hors du navigateur — ainsi que sur Bun, Deno et les workers Cloudflare sans changement de code. Atlas standardise sur Node.js (version épinglée dans .nvmrc).

Appwrite comme Backend-as-a-Service (BaaS) — une plateforme qui fournit les services de base d’une application (authentification, base de données, stockage, fonctions) prêts à l’emploi, sans avoir à écrire et déployer un backend custom.

ServiceUsage dans Atlas
AuthentificationConnexion par magic link (lien envoyé par email)
Base de donnéesStockage des métadonnées applicatives
StockageFichiers joints, exports
FonctionsCode serveur déclenché par événement

Appwrite est open-source et conforme SOC-2, RGPD et HIPAA.

REDCap (Research Electronic Data Capture) pour les formulaires structurés portés par les applications. REDCap est une plateforme open-source généraliste de capture de données via formulaires en ligne, développée par Vanderbilt University ; née dans la recherche, elle est aujourd’hui utilisée pour tout type de collecte structurée (enquêtes, suivis, administration).

MétriqueValeur
Institutions partenaires8 000+
Pays164
Citations scientifiques51 000+
ConformitéRGPD, HIPAA, 21 CFR Part 11
CoûtGratuit pour les membres du consortium

Les certifications de conformité ci-dessus (dont HIPAA, 21 CFR Part 11) attestent du niveau de sécurité de la plateforme ; elles n’impliquent pas qu’Atlas y traite des données de santé. Dans Atlas, REDCap porte exclusivement des formulaires structurés administratifs (conventions, profils, propositions de projet) : aucune donnée de santé ni donnée sensible n’y est saisie.

vitest pour les tests unitaires et d’intégration : exécuteur de tests rapide, compatible Jest, intégré à Vite.

Playwright pour les tests de bout en bout (end-to-end) : pilote un vrai navigateur (Chromium, Firefox, WebKit) pour valider les parcours utilisateur complets.

Voir Tests pour la pyramide à cinq niveaux.

Le dépôt est un monorepo : de nombreux paquets versionnés ensemble dans un seul dépôt git (voir Monorepo). Cette section liste l’outillage qui le rend gérable à cette échelle.

pnpm comme gestionnaire de paquets — l’outil qui installe les dépendances JavaScript et orchestre les paquets du monorepo. Retenu pour ses workspaces natifs (les paquets se référencent entre eux sans publication), son cache partagé sur disque et des installations plus rapides que npm ou yarn sur un gros dépôt.

turbo comme orchestrateur de tâches — parallélisation et cache de build, test, lint à travers les sous-projets (ne réexécute que ce qui a changé).

Changesets pour la gestion des versions et des changelogs.

Astro Starlight pour la documentation publique — génère un site statique à partir des fichiers Markdown de docs/. (Le dépôt utilisait auparavant VitePress ; la migration est tracée dans l’ADR 0036.)

Model Context Protocol est un protocole qui permet à un assistant de développement IA de récupérer de la documentation et d’invoquer des outils. Atlas configure plusieurs serveurs MCP dans .mcp.json :

ServeurRôle
effect-mcpDocumentation Effect
svelte-mcpDocumentation Svelte 5 et SvelteKit
kubernetesOutils Kubernetes (inspection et pilotage de pods)

La mise en place de ces serveurs (téléchargés à la volée via pnpm dlx ou npx) est un détail d’installation, pas un choix technique : elle est documentée dans Environnement local → Serveurs MCP.