Flaggy
Serveur de feature flags léger écrit en Go avec son SDK JavaScript/React — single binary, stockage SQLite, mises à jour temps réel via SSE.
Rôle : Créateur
Le Projet
Flaggy est un serveur de feature flags léger et autonome, écrit en Go. Un seul binaire, un stockage SQLite, zéro dépendance externe au runtime. Il est accompagné d'un SDK JavaScript/React (@getflaggy/sdk) pour l'intégration côté client.
Fonctionnalités du Serveur
Types de Flags
Supporte les flags de type boolean, string, number et JSON avec des valeurs par défaut configurables.
Moteur de Règles
- Conditions évaluées en logique AND avec priorité ordonnée (first match wins)
- 12 opérateurs :
equals,not_equals,in,not_in,contains,starts_with,gt,gte,lt,lte,exists,regex - Résolution d'attributs en dot-notation (
user.plan,user.meta.role)
Segments
Groupes réutilisables de conditions partagés entre les règles — permet de définir des cohortes (ex : utilisateurs pro) et de les réutiliser sur plusieurs flags.
Rollout Progressif
Déploiement par pourcentage avec bucketing déterministe (MurmurHash3) basé sur l'identifiant de l'entité.
Streaming Temps Réel
Connexion SSE pour recevoir les changements de flags en temps réel, avec reconnexion automatique côté client.
CLI
Interface en ligne de commande pour gérer les flags, segments et évaluer depuis le terminal.
SDK JavaScript/React
Le SDK (@getflaggy/sdk) fournit :
FlaggyProvider+useFlag— hooks React pour lire les flagsFlaggyClient— client vanilla JS avec événementsready,change,error- Cache local avec évaluation côté serveur
- Mises à jour temps réel via SSE avec reconnexion automatique (backoff exponentiel + jitter)
- TypeScript natif, dual ESM/CJS, zéro dépendance
Stack Technique
- Go pour le serveur (single binary, ~10 MB)
- SQLite pour le stockage (embarqué, sans configuration)
- TypeScript pour le SDK client
- React pour les bindings React
- Docker pour le déploiement