Références
Stack technique
Chaque brique de la stack de Vantablvck et la raison de son choix.
La stack repose sur le Better-T-Stack, enrichi de ce que ce projet précis exige : du stockage objet, une file de jobs, et une vraie couche de modération. Chaque choix a une raison, exposée ici.
Socle
| Brique | Rôle | Pourquoi ce choix |
|---|---|---|
| Bun | Runtime et gestionnaire de paquets | Rapide, moderne, un seul outil pour exécuter, installer et tester. |
| Nx | Orchestration du monorepo | Gère le graphe de dépendances, le cache et l'exécution parallèle des tâches. |
| Elysia | Serveur d'API | Typé de bout en bout, ses macros encodent les garde-fous de sécurité dans le pipeline plutôt que dans les handlers. |
| Eden Treaty | Lien typé serveur vers clients | Les types du serveur sont partagés sans duplication, ce qui reste ouvert à un futur client natif. |
| Next.js (App Router) | Client web, PWA | Une seule base de code pour le web et la PWA, installable sans store. |
| Expo | Application native | Présent mais gelé pour le MVP, pour ne pas imposer deux clients à maintenir en solo. |
| Drizzle + PostgreSQL | ORM et base | Schéma déclaratif et typé, migrations générées, base relationnelle éprouvée. |
| Better Auth | Authentification | Auto-hébergée, les identités restent souveraines dans la base, sans coût par utilisateur. |
| coss sur Base UI | Interface | Composants accessibles sur une fondation moderne, cohérents avec le choix retenu. |
| Zod et t3-env | Validation | Validation systématique des entrées et des variables d'environnement, pour échouer tôt. |
Ajouts propres à Vantablvck
| Brique | Rôle | Pourquoi ce choix |
|---|---|---|
| RustFS | Stockage objet | Compatible S3, écrit en Rust, sous licence Apache. Comme le code ne parle que l'API S3, basculer de fournisseur ne change qu'un endpoint. |
| pg-boss | File de jobs (départ) | S'appuie sur PostgreSQL, ce qui évite une dépendance de plus au démarrage. |
| Redis et BullMQ | File et cache (prévu) | Introduits quand le temps réel, le fan-out et le rate limiting distribué le justifieront. |
| Serwist | Service worker (prévu) | Configure la vraie PWA (hors-ligne, Web Push), successeur maintenu de next-pwa. |
| CDN devant le stockage | Diffusion et scan | Accélère les médias et héberge le scan des contenus pédocriminels. |
Qualité et documentation
| Brique | Rôle | Pourquoi ce choix |
|---|---|---|
| Biome | Lint et format | Un seul outil pour remplacer ESLint et Prettier, et vérifier la convention kebab-case. |
| Husky | Hooks git | Lance les vérifications avant chaque commit. |
| Fumadocs | Documentation | Site de doc basé sur Next.js, intégré au monorepo, avec support Mermaid. |
| Runner de test Bun | Tests unitaires | La logique métier pure vit dans packages/core et se teste sans base ni serveur. |
| GitHub Actions | CI | Lint, typecheck, tests et build à chaque push et pull request. |
Ce qui n'est pas encore branché
Par honnêteté, voici l'écart entre le prévu et le construit. La couche Eden Treaty, le plugin de modération, les modules posts et feed, l'application worker, l'intégration de RustFS et Redis dans le docker-compose, et la vraie PWA (Serwist, Web Push) sont conçus mais pas encore implémentés. Le fichier progress.md à la racine du dépôt tient l'état vivant.