Flagward
Código abiertoDjango + Redis, autoalojable, licencia MIT

Publica el despliegue hoy.
Libera la funcionalidad cuando estés listo.

Flagward separa el despliegue del código de su liberación. Tu SDK descarga las reglas una sola vez y las evalúa dentro de tu proceso en menos de un milisegundo — y cuando cambias un flag, la novedad se transmite a cada cliente conectado mediante SSE.

app.flagward.com · gratis para probar · sin tarjeta

Flagward · producción

en vivo

new-checkout

Booleano · checkout de una página

checkout-cta

Multivariante · llamado a la acción

Cambia cualquier cosa aquí. La app renderiza el nuevo valor en el mismo frame — no se hizo ninguna solicitud.

acme.shop/checkout

Checkout exprés

Una página. Un toque.

new-checkout
Apple Pay
Google Pay
Suéter merino · 1×$128.00
Devoluciones gratis dentro de 30 días

Renderizado a partir de un flag evaluado localmente — no se hizo ninguna solicitud.

Eso no es un video. Cambia el interruptor — el checkout de la derecha está leyendo el flag que acabas de modificar.

<1ms
evaluación local
SSE
propagación en tiempo real
MIT
código abierto
docker compose up
El problema

Publicar el código y liberar una funcionalidad son dos decisiones distintas

La mayoría de los equipos se ven obligados a tomarlas en el mismo momento. Ese acoplamiento es lo que convierte un lanzamiento en una ventana de despliegue y un error en un incidente.

Una liberación es un despliegue

La funcionalidad se activa cuando termina el pipeline. Programar un lanzamiento significa programar un merge, y un rollback significa otro despliegue.

Con Flagward

Haz merge cuando el código esté listo. Libera la funcionalidad activando un interruptor, en el momento que elijas.

Revertir te cuesta minutos que no tienes

Algo falla en producción. Revertir, reconstruir, volver a desplegar — y esperar que nada más haya viajado en ese commit.

Con Flagward

Fuerza el flag a apagado. El override omite todas las reglas, llega de inmediato a los clientes conectados y queda registrado en el historial de auditoría con su motivo.

Cada verificación de flag cuesta un viaje de ida y vuelta

Un servicio de flags que llamas por HTTP pone la red en tu ruta de renderizado — y se lleva tu app abajo cuando no está disponible.

Con Flagward

Las reglas se descargan una sola vez y se evalúan en tu proceso. Una verificación no cuesta nada, funciona sin conexión, y el contexto del usuario nunca sale del cliente.

Cómo funciona

Cuatro pasos, y solo uno de ellos toca la red

Flagward es un plano de control, no una dependencia en la ruta de tus solicitudes. Las reglas viajan a tu proceso una sola vez; después de eso, una evaluación es una llamada a función.

  1. 01

    Crea el flag

    En el panel, dentro de un proyecto y un entorno. Eliges la clave — es el string exacto que tu código le pasará a useFlag.

    key: "new-checkout"
  2. 02

    El SDK descarga las reglas

    Una sola vez, al iniciar, autenticado con la API key del entorno. Una clave limita el SDK a un solo entorno y nada más.

    GET /api/v1/sdk/flags/
  3. 03

    Tu app evalúa localmente

    El evaluador se ejecuta en tu proceso contra el contexto que le pasas. Sin red en la ruta de renderizado, y sin atributos del usuario saliendo del cliente.

    useFlag("new-checkout") → true
  4. 04

    Los cambios se transmiten de vuelta en tiempo real

    Cambia un flag, ajusta un rollout o acciona el kill switch, y el nuevo snapshot se envía a cada SDK conectado mediante SSE.

    event: flags.updated

Una sola contrapartida, dicha con claridad. En un navegador, la evaluación local implica que las reglas viajan hasta el cliente — cualquiera puede abrir las devtools y leer que estás segmentando por plan == "enterprise". No coloques un secreto en una regla de segmentación. Cuando las reglas mismas deben permanecer del lado del servidor, Flagward también expone evaluación remota mediante POST /api/v1/sdk/evaluate/.

Demo en vivo

Un flag, seis usuarios y un kill switch

Este es un evaluador real ejecutándose en tu navegador con las reglas de Flagward. Cambia el estado, la segmentación, el porcentaje de rollout o el override, y observa a quién resuelve el flag — y por qué.

new-checkoutproducción
2/6 usuarios lo ven

Estado del flag

El interruptor de encendido/apagado configurado para este entorno.

Regla de segmentación

plan in "pro,enterprise"

Rollout

60%

Cada usuario obtiene un bucket estable a partir de su id, así que subir el porcentaje solo agrega personas.

Kill switch

Fuerza el valor y omite todas las reglas.

Evaluar como

acme.shop/checkout

Checkout — paso 2 de 3

Datos de pago

anterior
Número de tarjeta
Vencimiento / CVC
Dirección de facturación

Faltan dos pasos antes de que se realice el pedido.

Renderizado a partir de un flag evaluado localmente — no se hizo ninguna solicitud.

Evaluación · Bruno

ROLLOUT_EXCLUDED

useFlag("new-checkout") → false

Coincidió con "Planes pagos, rollout gradual" pero el bucket 97 está fuera del rollout del 60%

Registro del SDK

Esperando — cambia un control para ver una evaluación.

Cada valor en pantalla — la variante, el motivo, el bucket — sale directamente de la evaluación. Nada aquí está guionado.

Funcionalidades

Todo lo que una liberación necesita, y nada de lo que no

Flagward es deliberadamente pequeño: un plano de control para flags, un evaluador local rápido, y suficiente visibilidad para saber qué se les está sirviendo realmente a tus usuarios.

Evaluación local

Las reglas se evalúan en tu proceso, no por HTTP. Una verificación de flag nunca bloquea por la red y sigue funcionando aunque Flagward no esté disponible.

Propagación en tiempo real

Cada cambio se transmite a los SDKs conectados mediante SSE. Sin intervalo de polling que ajustar, sin esperar a que expire una caché.

Kill switch con historial de auditoría

Fuerza un flag a encendido o apagado durante un incidente. El override omite todas las reglas, registra su motivo, y al levantarlo se restaura exactamente la configuración que tenías.

Segmentación y rollouts

Flags booleanos y multivariantes, reglas de estrategia construidas a partir de condiciones sobre atributos, y rollouts porcentuales sobre buckets estables por usuario.

Entornos y API keys

Cada entorno tiene su propia API key, y una clave limita un SDK a ese entorno y nada más.

Organizaciones, proyectos, roles

Multi-tenant desde el modelo mismo. El acceso proviene únicamente de las membresías — una fila ajena responde 404, sea o no superusuario.

Monitoreo

SDKs conectados, volumen de evaluaciones, el registro de evaluaciones y el historial completo de overrides, todo en una sola página.

Autoalojable

Django, Redis y Postgres, a un solo docker compose up de distancia. Licencia MIT, y tus datos de flags permanecen en tu infraestructura.

SDKs

Instala un paquete. Lee un flag en la siguiente línea.

Cada adaptador usa el mismo evaluador, así que una regla se resuelve de forma idéntica sin importar cuál uses — y un adaptador reexporta el núcleo, así que instalas un paquete, no dos.

terminal
npm install @flagward/react

React 18+. Autentícate con la API key del entorno desde el panel — una clave limita el SDK a un solo entorno y nada más.

Código fuente: basb7/flagward-sdk-js →
app.tsx
import { FlagwardProvider, useFlag } from "@flagward/react";

function App() {
  return (
    <FlagwardProvider apiKey={process.env.NEXT_PUBLIC_FLAGWARD_KEY} host="https://app.flagward.com">
      <Checkout />
    </FlagwardProvider>
  );
}

function Checkout() {
  const { value, isLoading } = useFlag("new-checkout");

  // `value` is undefined until the first snapshot arrives, and stays
  // undefined for a key this environment does not have.
  if (isLoading) return <LegacyCheckout />;

  return value ? <NewCheckout /> : <LegacyCheckout />;
}
Autoalojamiento

Ejecútalo tú mismo, o deja que lo hagamos nosotros

Flagward es de código abierto y autoalojable por diseño. El panel alojado es el mismo software, con la operación fuera de tus manos.

  • Django 6.1 + Redis + PostgreSQL, todo en el archivo compose
  • Licencia MIT — bifúrcalo, audítalo, ejecútalo donde quieras
  • Los datos de tus flags y los atributos de tus usuarios permanecen en tu infraestructura
  • O evita todo esto y usa el panel alojado en app.flagward.com

Flagward viene con valores predeterminados de desarrollo para funcionar de inmediato. Estos no son seguros para un despliegue — lee SECURITY.md antes de exponer una instancia.

terminal
git clone https://github.com/basb7/flagward.git
cd flagward
docker compose up

# Dashboard   http://localhost:3000
# API         http://localhost:8000

Tu próxima liberación no necesita una ventana de despliegue

Crea una organización, agrega un proyecto y un entorno, y envuelve tu primer componente. El flag que crees en el panel será legible desde tu app esa misma tarde.