My App
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

BriqueRôlePourquoi ce choix
BunRuntime et gestionnaire de paquetsRapide, moderne, un seul outil pour exécuter, installer et tester.
NxOrchestration du monorepoGère le graphe de dépendances, le cache et l'exécution parallèle des tâches.
ElysiaServeur d'APITypé de bout en bout, ses macros encodent les garde-fous de sécurité dans le pipeline plutôt que dans les handlers.
Eden TreatyLien typé serveur vers clientsLes types du serveur sont partagés sans duplication, ce qui reste ouvert à un futur client natif.
Next.js (App Router)Client web, PWAUne seule base de code pour le web et la PWA, installable sans store.
ExpoApplication nativePrésent mais gelé pour le MVP, pour ne pas imposer deux clients à maintenir en solo.
Drizzle + PostgreSQLORM et baseSchéma déclaratif et typé, migrations générées, base relationnelle éprouvée.
Better AuthAuthentificationAuto-hébergée, les identités restent souveraines dans la base, sans coût par utilisateur.
coss sur Base UIInterfaceComposants accessibles sur une fondation moderne, cohérents avec le choix retenu.
Zod et t3-envValidationValidation systématique des entrées et des variables d'environnement, pour échouer tôt.

Ajouts propres à Vantablvck

BriqueRôlePourquoi ce choix
RustFSStockage objetCompatible 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-bossFile de jobs (départ)S'appuie sur PostgreSQL, ce qui évite une dépendance de plus au démarrage.
Redis et BullMQFile et cache (prévu)Introduits quand le temps réel, le fan-out et le rate limiting distribué le justifieront.
SerwistService worker (prévu)Configure la vraie PWA (hors-ligne, Web Push), successeur maintenu de next-pwa.
CDN devant le stockageDiffusion et scanAccélère les médias et héberge le scan des contenus pédocriminels.

Qualité et documentation

BriqueRôlePourquoi ce choix
BiomeLint et formatUn seul outil pour remplacer ESLint et Prettier, et vérifier la convention kebab-case.
HuskyHooks gitLance les vérifications avant chaque commit.
FumadocsDocumentationSite de doc basé sur Next.js, intégré au monorepo, avec support Mermaid.
Runner de test BunTests unitairesLa logique métier pure vit dans packages/core et se teste sans base ni serveur.
GitHub ActionsCILint, 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.

On this page