Back to sh0
sh0

Application des licences : Free, Pro, Business -- gating de fonctionnalités en Rust

Comment nous avons implémenté un système de licences à 3 niveaux dans un PaaS auto-hébergé -- tier gratuit généreux, gating de fonctionnalités en Rust et invitations à l'upgrade dans le tableau de bord.

Juste A. Gnimavo (Thales) & Claude | March 26, 2026 2 min sh0
EN/ FR/ ES
licensingfreemiumrustbusiness-modelsaasself-hosted

Comment monétiser un produit auto-hébergé ? L'utilisateur télécharge votre binaire, le fait tourner sur son propre serveur, et a le contrôle total de la machine. Il n'y a pas de page de facturation SaaS à visiter. Il n'y a pas de compteur d'utilisation qui tourne en arrière-plan. Le produit entier tourne localement, et toute personne suffisamment motivée pourrait patcher le binaire pour supprimer vos vérifications de licence.

Nous avons implémenté un système de licences à 3 niveaux : Free (généreux -- 5 applications, 3 bases de données, sauvegardes locales, monitoring basique), Pro (applications illimitées, stockage cloud, autoscaling, support prioritaire), et Business (multi-serveur, RBAC, SSO, audit logging).

Le gating de fonctionnalités est implémenté comme un middleware Rust qui vérifie le niveau de licence avant d'exécuter le handler. Les fonctionnalités pro-only retournent un 402 avec un message clair indiquant quelle licence est nécessaire. Le tableau de bord affiche des invitations à l'upgrade contextuelles -- pas des murs de blocage, mais des incitations douces expliquant ce que la mise à niveau apporterait.

La clé de licence est un JWT signé par notre serveur de licences, vérifié localement par le binaire. Pas de vérification en ligne requise après l'activation initiale -- sh0 fonctionne offline.


Dernier de la série : 14 jours, 105 sessions, 1 CTO IA : l'histoire complète de la construction de sh0.dev.

Share this article:

Responses

Write a response
0/2000
Loading responses...

Related Articles

Thales & Claude thales

Treize agents, quarante-trois minutes : la première session Workflow de Claude Fable 5, et ce qu'un script d'orchestration déterministe change aux builds multi-agents

Un prompt, treize agents, quarante-trois minutes : la première session de production avec Claude Fable 5 et l'outil Workflow de Claude Code a livré un site web de production complet de sept pages plus un endpoint backend de capture de leads, en un seul commit. Le carnet de bord : le script d'orchestration déterministe, le patron d'injection de contrat entre les phases, l'économie par agent du fan-out parallèle, et le suspense de la limite de session que le journal de reprise a transformé en non-événement.

23 min Jun 12, 2026
claude-fable-5claude-codeworkflow-toolmulti-agent +10
Thales & Claude casp

La porte a détecté sa propre dérive : une journée dans CASP avec Claude Fable 5

Nous avons confié au modèle Claude le plus autonome à ce jour les clés de CASP — le CLI open source qui garde les agents de code IA honnêtes face à git — avec l'autorité de rejeter notre propre roadmap. Il a rejeté cinq choses, trouvé deux vrais bugs dans le validateur en le dogfoodant, les a corrigés sous une porte à deux auditeurs, et a laissé casp check entièrement vert sur son propre dépôt pour la première fois. CASP 0.3.0 en est le résultat.

16 min Jun 10, 2026
caspzerosuiteworkflowai-cto +9
Thales & Claude zerosuite

La transplantation du CASP : comment la discipline des six fichiers est passée de Conductor à un ERP transport anti-fraude, ce que la compétence /next ajoute quand l'opérateur tape juste « next », et pourquoi le coût d'une dérive du CASP grimpe quand le projet, c'est l'argent des autres

La discipline du CASP qui a piloté trente-cinq sessions de Conductor est agnostique au produit. Le carnet de bord de sa transplantation sur KASSIA, un ERP transport anti-fraude pour un exploitant de flotte en Côte d'Ivoire : ce qui a migré, ce qui n'a pas migré (le validateur sur mesure — et ce que son absence coûte), ce que la compétence /next ajoute quand l'opérateur tape un seul mot, et là où le CASP s'arrête — le bug de déploiement qu'il ne pouvait pas voir parce qu'il enregistre l'intention, pas la réalité de l'infrastructure.

23 min Jun 8, 2026
kassiaerp-kassia-transport-logistiquezerosuiteCASP +15