Cœur d’API
Le service Rust et Axum auquel toutes les autres parties de la plateforme s’adressent.
Une plateforme de compétences construite en solo sur une architecture polyglotte, entourée d’une gouvernance publique. Bêta ouverte en janvier 2027.
Skilluv est l’ensemble le plus vaste de cette archive, et le seul qui en traverse toutes les dimensions. Un backend Rust, un front et une administration en Svelte, et un service IA Python qui parle au cœur Rust en gRPC quand la réponse doit arriver tout de suite, et par une file Redis quand elle peut attendre. Le cœur, c’est 183 000 lignes de Rust, 4 544 tests répartis sur 233 fichiers et 468 migrations ; le service IA, environ 11 000 lignes de Python.
Le service IA fait le travail qui distingue la plateforme d’un catalogue de cours : génération de défis par un LLM, détection de plagiat combinant arbres syntaxiques et embeddings sur huit langages, appariement noté entre talents et entreprises, et traitement des rediffusions. Chacune de ses méthodes a un budget de latence écrit avant d’être servie : moins de quinze secondes en médiane pour une revue de code par un modèle, moins de deux secondes pour la détection de plagiat, qui est déterministe et ne doit rien à un modèle. Un dépassement bloque la mise en ligne au lieu d’être découvert par un apprenant.
Séparer l’administration du produit est la décision qui a structuré le reste. Une équipe d’exploitation et un apprenant n’ont presque rien en commun dans ce qu’ils ont besoin de voir, et les réunir aurait produit une interface durablement médiocre pour les deux.
Les dépôts de gouvernance comptent autant que le code. Une communauté devient gouvernable à partir du moment où ses décisions cessent de vivre dans des conversations privées.
La décision que j’ai reprise : je voulais que tout tourne sur mon propre serveur, jusqu’aux environnements de développement, à Blender et à Penpot. Ça marchait pour un utilisateur et pour aucun autre. J’ai arrêté à temps, mais tard, et c’est le genre d’ambition qui se juge sur ce que coûte le millier d’utilisateurs suivant, pas sur le fait qu’elle tienne debout le premier jour.
Le chemin immédiat et le chemin différé sont deux chemins, pas un seul avec un délai d’attente. Une revue de code prend une dizaine de secondes et quelqu’un l’attend devant son écran ; le traitement d’une rediffusion prend des minutes et personne ne doit attendre. Chaque méthode a un budget de latence écrit avant d’être servie, et un dépassement bloque la mise en ligne.


Le service Rust et Axum auquel toutes les autres parties de la plateforme s’adressent.
La surface SvelteKit que les apprenants utilisent réellement.
Modération, catalogue et exploitation, tenus dans un build distinct plutôt que dans un recoin privilégié du produit.
Génération de défis, détection de plagiat sur huit langages, appariement des talents et traitement des médias.
Une implémentation de référence par filière, chacune un projet qui tourne plutôt qu’un gabarit.
Quatre dépôts publics qui rendent visibles les décisions, les règles et les arrivées, au lieu de les laisser implicites.