Feature flags

Sube el código ahora. Elige después quién lo ve.

Un feature flag es un interruptor que prende o apaga una parte de tu producto para la gente que tú elijas, sin subir código nuevo.

Kilden evalúa los flags en un servicio hecho para esa única tarea, y los apunta con los mismos eventos, personas y segmentos sobre los que corre tu analítica.

Empezar gratis Leer la guía
app.kilden.io / flags / new_checkout
Flag
new_checkout
Activo
Rollout 40%
Targeting
Gente del segmento «pagó dos veces y no volvió nunca más»
Para qué

Desplegar no es lanzar

Subir código y encenderlo son dos decisiones. Amárralas y cada release es una apuesta que se resuelve delante de todo el mundo a la vez.

1
Mergeas el martes, lanzas el jueves

El código llega a producción detrás de un flag apagado —desplegado, alcanzable por nadie— hasta que lanzar es mover un interruptor y no un deploy de viernes.

2
Deshacer en segundos, no en un pipeline

Apagar el flag es un clic. Revertir, reconstruir y volver a desplegar demora lo que demore tu pipeline, y mientras tanto los clientes están sentados en la versión rota.

3
Primero el radio de daño chico

Tu propio equipo, después una tajada del tráfico, después todos. Si la tasa de errores se mueve, se movió para una fracción de la gente.

Nada de esto necesita una rama de larga vida, un tren de releases ni una segunda copia de tu infraestructura.

Qué incluye

Todo lo que un flag tiene que hacer

Se crea en el panel, se evalúa en producción y se lee desde tu código en una línea.

Prendido o apagado

Prendido para quienes calzan con tu targeting, apagado para el resto. El flag más común también es el más aburrido.

Variantes con nombre

Dale al flag una lista de variantes en vez de prendido y apagado, y tu código lee de vuelta el nombre de la variante. Un botón reparte los pesos parejo.

Rollout por porcentaje

Un despliegue gradual es un corte en un hash, no una fila. Súbelo y el flag solo agrega gente: nadie pierde la funcionalidad porque moviste el número.

Kill switch

Un interruptor apaga el flag para todos, diga lo que diga el targeting, y llega al servicio de evaluación en segundos. Sin deploy y sin caché que invalidar.

Ambientes separados

Un flag pertenece a un proyecto, y el proyecto es la frontera: staging tiene sus propios flags y sus propias llaves.

Exposiciones que puedes graficar

La primera vez que una sesión lee un flag, un evento registra el valor que recibió, así que puedes graficar un rollout en vez de confiar en él.

La diferencia

Apunta por lo que la gente hizo, no por una lista que pegaste

Una herramienta de flags suelta conoce un id y las propiedades que te acordaste de mandar, así que la audiencia termina siendo una lista pegada que alguien mantiene a mano.

Kilden es antes que nada una plataforma de datos de clientes, y el servicio de flags lee las mismas personas, eventos y segmentos que tus embudos y tus campañas. Una audiencia es una frase sobre comportamiento.

Audiencias que son un segmento, no una exportación
Pagó dos veces y no volvió nunca más Se topó con un error en el checkout la semana pasada Invitó a alguien del equipo pero nunca mandó un mensaje Está en un plan pagado y no ha abierto el editor nuevo
Se define una vez, lo usa todo

Armas la audiencia una vez como segmento, y el flag que abre la funcionalidad, la campaña que hace seguimiento y el embudo que la mide leen la misma definición.

Se mantiene al día con el comportamiento

La pertenencia se recalcula desde los eventos, así que alguien que volvió ayer sale solo de «no volvió nunca más».

Lo que eso cuesta

La pertenencia a un segmento se recalcula por agenda, así que puede ir minutos atrasada. Sirve para targeting y no sirve para nada que tenga que ser cierto en este segundo exacto; para eso, las propiedades que mandas en la petición se aplican al tiro.

Mueve el rollout y mira quién queda adentro

Un flag, veinte personas y la aritmética que decide dónde cae cada una. Arrastra el rollout: la misma persona cae siempre del mismo lado.

new_checkout
Variante
Lo que renderiza la página
Dos bolsas de tueste nórdico, listas para pagar.

El flag está prendido. La gente dentro del rollout recibe esta variante; el resto recibe el checkout que ya tienes en producción.

Las mismas veinte personas, siempre
Dentro del rollout Afuera

El color del punto es la variante que le tocaría a esa persona: un hash independiente, así que no sigue al rollout.

Cada ficha es un distinct id. Sube el rollout y las fichas solo se encienden; bájalo y los últimos en entrar son los primeros en salir. Estas veinte están repartidas parejo en el rango, así que la cuenta sigue al control; veinte de verdad se moverían para un lado o para el otro.

Barajar cambia el orden en que se dibujan y nada más: cada persona se queda de su lado.

Ilustrativo: reproduce la propiedad que la página afirma —la posición depende solo de la clave del flag y del id— y no el hash que calcula el servicio.

Bajo el capó

Una petición, una función pura, nada anotado

La evaluación de flags es su propio servicio, y la única parte de Kilden que una carga de página espera. Esto es todo lo que hace.

01
El SDK pregunta una vez

Al arrancar, el SDK manda tu llave pública y el distinct id actual, y recibe todos los flags en una sola respuesta: los inactivos como falso, para que «apagado» no se confunda con «nunca supe de él».

02
La posición es aritmética

Que alguien caiga dentro de un rollout es un hash de la clave del flag y de su distinct id, mapeado sobre la línea que corta el porcentaje. Mismas entradas, misma respuesta.

03
No se asigna nada

No hay tabla de asignaciones ni escritura en el camino de lectura. Subir un rollout alarga el corte, que es justo por lo que solo agrega gente. Las variantes salen de un segundo hash.

04
Las lecturas son locales

Después de esa primera respuesta, cada lectura de un flag es una consulta en memoria. La primera lectura de cada flag registra la exposición.

El único lugar donde un valor puede moverse

El bucket depende del distinct id, así que cuando alguien inicia sesión y su id anónimo es reemplazado, una persona justo en el borde puede cambiar de lado. Ese es el precio de evaluar sin estado guardado. El SDK recarga los flags apenas cambia la identidad.

Experimentos

Un flag con variantes ya es casi un test A/B

Una vez que un flag reparte variantes con nombre, lo único que falta es la aritmética. Un experimento es un lente sobre un flag que ya tienes: eliges el flag, eliges la métrica, lees el resultado.

La conversión se cuenta solo después de que la persona quedó expuesta, así que una compra anterior a que viera el cambio no se le puede acreditar.

Cómo se compara con PostHog
Se niega a declarar un ganador que no puede ver

Un reparto que no calza con tus pesos, exposición demasiado delgada para concluir algo, tráfico anónimo mezclado con identificado: el reporte nombra el problema y se guarda el veredicto.

Instalación

Dos líneas para leer un flag

Agrega el SDK, inicialízalo con tu llave pública y lee el flag por su clave. Los flags cargan en segundo plano, así que condiciona el render al callback.

SDK web
# npm install kilden
import kilden from 'kilden'
kilden.init('wk_…')
kilden.onFeatureFlags(() => {
  if (kilden.isFeatureEnabled('new_checkout')) renderNewCheckout()
})

Los SDK de servidor evalúan los mismos flags con tu llave secreta, y el endpoint está documentado si prefieres llamarlo tú. La llave secreta se rechaza desde un navegador.

Leer la guía de flags
La letra chica

Qué cuenta como una petición de flags

Una petición de flags es una respuesta que trae flags, no una por cada flag que lee tu código. El SDK pregunta una vez al cargar y responde cada lectura desde memoria, así que una página con cincuenta flags gasta una petición.

Eso sale más barato por flag que cobrar cada lectura, que castiga a cualquier app con muchos flags en una misma pantalla.

Y hoy no se cobran

No hay ningún medidor contando peticiones de flags ni una línea para ellas en una factura. Un cupo que no puedes exceder es decoración y no un límite, así que esta página no imprime ninguno. El día que se midan, las páginas de planes reciben el número primero.

Ver qué se cobra

Lo que la gente pregunta de verdad

Deja el próximo release detrás de un interruptor que tú controlas

Crea un proyecto, mete el SDK y sube eso que te daba nervio: primero a tu propio equipo, después a quien se lo gane. Los flags vienen en el plan gratis.

Empezar gratis Ver una grabación de tu propio sitio