UStackUStack
OpenFlags icon

OpenFlags

OpenFlags é um sistema de feature flags open source e self-hosted para progressive delivery, com avaliação local via SDKs e control plane.

OpenFlags

O que é OpenFlags?

OpenFlags é um sistema de feature flags open source e self-hosted projetado para ajudar equipes a lançar mudanças com progressive delivery e rollouts mais seguros. Ele fornece um control plane e SDKs para que o código da aplicação avalie flags localmente e ative comportamentos de features sem necessidade de redeploy para cada alteração.

O propósito principal do OpenFlags é suportar fluxos de release — como rollouts por porcentagem, ativação direcionada e enablement controlado — mantendo a avaliação de flags com baixa latência e ownership de runtime dentro da infraestrutura da equipe.

Principais Recursos

  • Infraestrutura de flags self-hosted: Mantenha armazenamento de flags, lógica de targeting e ownership de runtime na sua própria infraestrutura, em vez de depender de uma plataforma hospedada.
  • Avaliação local via SDKs tipados: Avalie flags no app usando pacotes TypeScript, visando verificações rápidas e previsíveis ao executar a avaliação localmente no seu código.
  • Controles de progressive delivery: Role out features para fatias controladas (incluindo rollouts por porcentagem) em vez de ativar mudanças para todos de uma vez.
  • Targeting granular: Ative flags com base em targeting específico de usuários para que diferentes coortes recebam comportamentos de features diferentes.
  • Control plane REST com superfície focada: Use uma API REST simples para o control plane e gerenciamento de flags, projetada como parte de um monorepo com roles dedicados para server, dashboard, SDKs e docs.
  • Dashboard para toggling e gerenciamento de rollouts: Uma UI admin baseada em React ajuda equipes a togglear releases e gerenciar configurações de rollout.

Como Usar OpenFlags

  1. Comece com a documentação e quickstart: Use os docs fornecidos para configurar o server, dashboard e SDKs no seu ambiente.
  2. Crie um cliente SDK no seu app: Inicialize o cliente com sua API URL, identificador do projeto e identificador do usuário.
  3. Avalie flags localmente no código da aplicação: Use o SDK para verificar se uma flag está ativada (por exemplo, chamando flags.isEnabled("flag_name")) e renderize comportamentos condicionalmente.
  4. Gerencie configurações de rollout no control plane: Use o dashboard e/ou API REST para definir comportamentos de rollout, como ativação por porcentagem ou targeting direcionado.

Casos de Uso

  • Ative progressivamente uma nova experiência de usuário: Proteja uma UI ou workflow atrás de uma feature flag e ative para um subconjunto controlado de usuários em vez de todo o tráfego de uma vez.
  • Execute um beta test com usuários direcionados: Ative uma feature para coortes específicas via targeting de identificadores de usuários, permitindo comparar comportamentos entre grupos sem afetar o restante.
  • Reduza o blast radius de releases com rollouts por porcentagem: Role out uma mudança gradualmente (por exemplo, para 35% dos usuários) e ajuste o comportamento de rollout sem precisar rebuildar ou redeployar a aplicação.
  • Mantenha verificações de flags rápidas em apps sensíveis a performance: Use avaliação local no app para que checks de features permaneçam com baixa latência e consistentes em runtime.
  • Mantenha ownership dentro da sua infraestrutura: Use um control plane self-hosted para manter a superfície operacional e de auditoria dentro do seu stack.

FAQ

  • OpenFlags é self-hosted ou cloud-hosted? OpenFlags Cloud está descrito como "coming soon", e a oferta atual é posicionada como open source e self-hosted.

  • Como funciona a avaliação de features? OpenFlags suporta avaliação local usando seus SDKs, para que checks de flags ocorram dentro do código do seu app em vez de exigir chamadas remotas para cada avaliação.

  • Quais padrões de rollout são suportados? O site menciona progressive delivery com rollouts por porcentagem, targeting granular e enablement controlado.

  • Quais componentes o OpenFlags inclui? O monorepo inclui um server (API powered by Bun para o control plane), um dashboard baseado em React, pacotes SDK TypeScript e documentação.

  • Para quais linguagens/frameworks os SDKs são projetados? O site destaca uso de SDKs JavaScript-first e menciona suporte para Bun, React, Next.js, Vite e apps Node.

Alternativas

  • Plataformas gerenciadas de feature flags (SaaS): Elas centralizam geralmente o gerenciamento de flags em um serviço hospedado. Comparadas ao control plane self-hosted do OpenFlags, a avaliação e a propriedade operacional podem depender mais da plataforma do fornecedor.
  • Rollouts baseados em infraestrutura como código (sem avaliação dedicada de flags): Equipes podem aproximar progressive delivery usando deployments, roteamento ou toggles de configuração. Isso difere do OpenFlags por não fornecer um workflow de SDK de feature flag específico para avaliação local.
  • Serviços open-source de feature flags com arquiteturas diferentes: Sistemas open source alternativos podem oferecer conceitos similares (flags, targeting, dashboards), mas com tradeoffs diferentes na abordagem de SDK, design da API do control plane ou forma de lidar com avaliação local.
OpenFlags | UStack