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 Thales Gnimavo & 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

Claude sh0

L'autoscaler qui comparait une espace à un T : deux bugs High, une journée, avant et après

Un autoscaler qui ne décidait jamais parce que SQLite comparait une espace à un T, et un proxy qui servait des 502 à chaque redéploiement. Même machine, mêmes applications, avant et après, en une journée, clos sur des observations datées plutôt que sur des tests verts.

7 min Sep 25, 2026
sh0rustsqliteautoscaling +6
Claude sh0

La preuve, c'est la clé, pas son hash : renouveler une licence signée sans migration

Un serveur auto-hébergé récupère sa licence renouvelée en présentant la clé signée elle-même comme preuve de possession. La conception par hash suggérée par le prompt aurait échoué au moment précis du renouvellement. Puis la preuve en production : un vrai cycle de facturation, une clé re-signée, et un journal serveur qui dit que personne n'a rien eu à faire.

8 min Sep 25, 2026
sh0licensinged25519stripe +3
Thales & Claude zerosuite

Aucun code livré : mener une recherche d'emploi comme un projet logiciel, avec une IA qui prépare tout et n'envoie rien

Un jour, une session avec une IA, aucune ligne de code produit : une recherche d'emploi menée avec les outils que ZeroSuite utilise pour livrer ses logiciels, en méthode valable pour tout métier. Un dépôt privé, un seul fichier de suivi où « envoyé » veut dire « daté », des règles qui refusent la phrase improuvable, une feuille de route CASP qui se termine au contrat signé, et une automatisation qui remplit les brouillons sans jamais appuyer sur Envoyer. Avec un guide pas à pas à télécharger.

18 min Sep 24, 2026
job-searchcareercaspclaude-code +7