My App
Références

Glossaire technique

Définitions des termes, acronymes et concepts utilisés dans le projet Vantablvck.

Réseau social et fil d'actualité

TermeDéfinition
Fil d'actualité (feed)La liste des publications présentées à un utilisateur. Chez Vantablvck, il est chronologique inverse par défaut, avec un fil de découverte fondé sur des signaux transparents.
Fil chronologiqueFil trié du plus récent au plus ancien, sans réordonnancement algorithmique opaque. C'est le mode par défaut, lisible et prévisible.
Timeline matérialiséeFil pré-calculé et stocké par utilisateur, pour éviter de le recalculer à chaque lecture. Utile seulement quand le volume l'exige.
Fan-outStratégie de construction du fil. En fan-out à la lecture, on interroge le graphe de suivi au moment d'afficher. En fan-out à l'écriture, on écrit la publication dans les timelines des abonnés dès sa création.
Keyset pagination (pagination par curseur)Pagination qui reprend là où on s'est arrêté grâce à un curseur (ici un ULID), au lieu de sauter un nombre de lignes. Elle reste rapide même sur des millions d'entrées.
OFFSETPagination classique qui saute N lignes avant de lire. À proscrire sur un fil : un grand OFFSET scanne toutes les lignes sautées et s'effondre après quelques semaines d'usage.
ULID (Universally Unique Lexicographically Sortable Identifier)Identifiant unique triable dans le temps. Utilisé pour toutes les tables métier, il sert de curseur naturel pour la pagination.
HandleLe nom d'utilisateur unique et court d'un compte, distinct du nom affiché.
RepostRepublication d'un contenu existant dans son propre fil, sans le modifier.
Citation (quote)Republication d'un contenu accompagnée d'un commentaire.

Modération et confiance

TermeDéfinition
SignalementAction par laquelle un utilisateur porte un contenu à l'attention de la modération. Un signalement priorise une revue humaine, il ne sanctionne jamais seul.
Acharnement (pile-on)Attaque coordonnée d'un groupe contre une même cible, souvent en détournant les outils de signalement. C'est la menace centrale que Vantablvck combat.
BridgingMécanisme, inspiré de Community Notes, qui donne du poids à un signal jugé fiable par des personnes qui d'ordinaire ne convergent pas. Il neutralise la meute, car le volume d'un groupe coordonné ne suffit plus.
Pondération d'un signalementLe poids d'un signalement ne vaut pas une voix. Il dépend de la fiabilité et de l'indépendance du signaleur, pas du nombre.
Trust level (niveau de confiance)Score de confiance d'un compte, dérivé de son ancienneté, de son comportement et de la fiabilité passée de ses signalements. Il conditionne les limites d'anti-abus.
ProportionnalitéPrincipe selon lequel une sanction se mesure à la gravité réelle d'un acte, jamais au volume de signalements.
Protection de la cibleEnsemble de mesures réversibles (ralentissement des interactions entrantes, masquage temporaire) qui protègent d'abord la personne visée, avant de juger le fond.
Dévisibilisation (shadow-limit)Sanction qui réduit la portée d'un compte sans l'en avertir. Efficace contre le troll récidiviste, qu'elle prive de signal.
Sanction graduéeÉchelle allant de l'avertissement au bannissement. Une décision choisit le cran juste, pas le maximum par défaut.
AppelMécanisme interne, exigé par le DSA, qui permet de contester une sanction et déclenche un réexamen humain.
Statement of reasons (décision motivée)Justification écrite d'une décision de modération, obligatoire au titre du DSA.
ClusterRegroupement de signalements appartenant à un même acharnement coordonné, pour les traiter ensemble.
Flagger (signaleur de confiance)Rôle dont les signalements sont traités en priorité, notion reprise du DSA.
Audit append-onlyJournal des actions sensibles qui n'est jamais modifié ni effacé, seulement complété. Il sert de preuve et de base au rapport de transparence.

Backend et API

TermeDéfinition
ElysiaFramework serveur pour Bun, typé de bout en bout. Ses macros permettent d'encoder les garde-fous de sécurité directement dans le pipeline des requêtes.
Eden TreatyClient généré par Elysia qui partage les types du serveur avec les clients web et natif, sans duplication ni schéma à maintenir à la main.
Macro ElysiaBrique réutilisable qui compose validation et cycle de vie sur une route, de façon déclarative. Chez Vantablvck, les macros portent l'authentification, le niveau de confiance requis et la limitation de débit.
Lifecycle (cycle de vie)Suite d'étapes par lesquelles passe une requête Elysia (parsing, validation, résolution, handler, réponse, erreur). Les garde-fous s'accrochent à ces étapes.
GuardRegroupement de validations et de hooks appliqués à plusieurs routes d'un coup.
Standard SchemaInterface commune qui permet à Elysia d'accepter des schémas Zod ou Valibot dans la validation des routes, tout en gardant Zod comme source de vérité.
ZodBibliothèque de validation de schémas TypeScript. Utilisée sur toute entrée : API, formulaires, variables d'environnement.
t3-envUtilitaire qui valide les variables d'environnement avec Zod au démarrage, pour échouer tôt plutôt qu'en production.
SSE (Server-Sent Events)Canal unidirectionnel du serveur vers le client, plus simple qu'un WebSocket. Utilisé au MVP pour les notifications in-app.
WebSocketCanal bidirectionnel temps réel, supporté nativement par Elysia. Prévu pour les fonctionnalités temps réel ultérieures.

Médias

TermeDéfinition
Presigned URL (URL pré-signée)URL temporaire qui autorise un client à envoyer un fichier directement vers le stockage objet, sans passer par l'API.
EXIFMétadonnées embarquées dans une image (appareil, parfois géolocalisation). Retirées systématiquement à l'envoi, pour la vie privée et la sécurité.
phash (perceptual hash)Empreinte perceptuelle d'un média, qui reste proche pour deux médias visuellement similaires. Sert à la dé-duplication et au matching de contenus connus.
TranscodageConversion d'une vidéo vers un format et une qualité normalisés, effectuée par un worker asynchrone, jamais dans la requête web.
CDN (Content Delivery Network)Réseau de diffusion placé devant le stockage. Il accélère la distribution des médias et héberge le scan des contenus pédocriminels.
Cycle de vie d'un médiaUn média passe par pending, puis un scan, puis ready ou blocked. Rien n'est diffusé avant l'état ready.

Web et PWA

TermeDéfinition
PWA (Progressive Web App)Application web installable sur mobile via l'ajout à l'écran d'accueil, capable de notifications et de fonctionnement hors-ligne, sans passer par un store.
Service workerScript qui tourne en arrière-plan du navigateur. Il gère le cache hors-ligne et reçoit les notifications push.
SerwistBibliothèque qui configure le service worker d'une application Next.js. Successeur maintenu de next-pwa. Prévu pour la vraie PWA.
Web PushStandard qui permet d'envoyer des notifications push à une PWA, sans passer par un store.
VAPID (Voluntary Application Server Identification)Paire de clés qui authentifie le serveur auprès du service de push, requise pour Web Push.
ManifestFichier qui décrit la PWA (nom, icônes, écran de démarrage) et la rend installable.

Sécurité et cadre légal

TermeDéfinition
HébergeurStatut légal d'un service qui stocke du contenu produit par ses utilisateurs. Il impose des obligations de signalement et de retrait.
LCEN (Loi pour la confiance dans l'économie numérique)Loi française qui définit les obligations d'un hébergeur : mentions légales, procédure de notification, retrait prompt des contenus illicites.
DSA (Digital Services Act)Règlement européen qui impose, même à une petite plateforme, un mécanisme de signalement, une décision motivée, un appel, de la transparence et la protection des mineurs.
RGPDRèglement européen sur les données personnelles : base légale, minimisation, droit à l'effacement, portabilité, protection des mineurs.
CSAM (Child Sexual Abuse Material)Contenu pédocriminel. Sa détection est obligatoire dès qu'une plateforme accepte des médias. Vantablvck s'appuie sur le scanner du CDN, retire immédiatement et signale aux autorités.
Rate limiting (limitation de débit)Restriction du nombre d'actions par période, par IP et par compte, plus stricte pour les comptes récents. Un garde-fou anti-abus de première ligne.
CORS (Cross-Origin Resource Sharing)Mécanisme qui contrôle quels domaines peuvent appeler l'API depuis un navigateur.

Base de données

TermeDéfinition
PostgreSQLBase de données relationnelle du projet. La version 18 est utilisée en développement via Docker.
DrizzleORM TypeScript typé. Le schéma est déclaratif, les migrations sont générées à partir du schéma.
MigrationFichier SQL généré à partir du schéma Drizzle, qui décrit comment faire évoluer la base d'un état au suivant.
IndexStructure qui accélère les lectures fréquentes. Les index clés portent sur le fil (auteur et date), la file de modération (statut, priorité, date) et le graphe de suivi.
pg_trgmExtension PostgreSQL pour la recherche floue, prévue pour la recherche de handles.
pgvectorExtension PostgreSQL pour la recherche vectorielle, prévue pour la modération par embeddings et la détection de near-duplicates.

Stack et outils

TermeDéfinition
BunRuntime JavaScript rapide et gestionnaire de paquets, utilisé partout dans le projet.
NxOrchestrateur de monorepo. Gère les dépendances entre projets, le cache et l'exécution parallèle des tâches.
Better AuthSolution d'authentification auto-hébergée, intégrée à Drizzle et Elysia. Les identités restent dans la base du projet, sans tiers.
cossRegistre de composants d'interface bâti sur Base UI, choisi pour l'UI de Vantablvck.
Base UIFondation de composants accessibles, sur laquelle reposent coss et le nouveau shadcn.
RustFSStockage objet compatible S3, écrit en Rust, sous licence Apache. Comme le code ne parle que l'API S3, le choix reste réversible.
S3Interface standard de stockage objet. Le projet ne dépend que de cette interface, pas d'un fournisseur précis.
pg-bossFile de jobs qui s'appuie directement sur PostgreSQL, choisie au départ pour éviter une dépendance de plus.
Redis et BullMQFile de jobs et cache, prévus quand le temps réel et le fan-out le justifieront.
FumadocsFramework de documentation basé sur Next.js. Il fait tourner ce site.
BiomeLinter et formateur unique pour le code. Il vérifie aussi la convention kebab-case des fichiers.
HuskyGestionnaire de hooks git, qui lance les vérifications avant un commit.
ZodBibliothèque de validation utilisée sur toute entrée du système.

On this page