Flaggy
En productionGoSQLiteTypeScriptReactSSEDocker

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 flags
  • FlaggyClient — client vanilla JS avec événements ready, 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