Ir al contenido

Guía rápida de web

En unos minutos tu sitio web leerá un feature flag real — con una caché duradera, una respuesta fail-safe para cada situación y nada que gestionar en el navegador.

Cero dependencias en tiempo de ejecución; el SDK entero cabe bajo un techo de 10 kB gzip.

El SDK vive en un repositorio público en GitHub — instálalo directamente desde ahí, fijado a la versión publicada:

Terminal window
npm install github:FortressFlag/FortressFlag_SDK_web#v1.0.0

El paquete se compila solo al instalarse, y el import de abajo es su punto de entrada.

Una vez, al principio del arranque de tu página o app:

import { Environment, FortressFlag } from "@fortressflag/sdk-web";
FortressFlag.start({
sdkKey: "ffc_prod_…", // de la pantalla Claves SDK de tu proyecto
environment: Environment.PRODUCTION,
});

start vuelve de inmediato; los valores en caché de visitas anteriores están disponibles al instante, y los valores frescos llegan en segundo plano. La clave es una clave de cliente — es visible en el código fuente de tu página por diseño.

if (FortressFlag.isEnabled("new-checkout", false)) {
// renderiza el nuevo checkout
}

stringValue y numberValue leen los flags multivariantes de la misma manera, y FortressFlag.onChange te avisa cuando los valores cambian para que puedas volver a renderizar.

Eso es todo — tu flag está activo. Cámbialo en el panel y vuelve a abrir la página (o espera un sondeo) para ver cómo le sigue.

Ninguna llamada de esta API lanza excepciones, y ninguna promesa suya se rechaza. Cada lectura se resuelve a través de la cascada: el valor obtenido más fresco, después el último valor que registró este navegador, después tu valor por defecto, después false. Una caída de FortressFlag, una red muerta, un bloqueador de anuncios, una clave revocada — todos se resuelven en un valor de flag, ninguno llega a tu código como un error.

(Ese caso del bloqueador de anuncios es real: algunas extensiones de privacidad bloquean las peticiones de flags. Los valores en caché se siguen sirviendo, y un navegador que nunca ha descargado sirve tus valores por defecto — «los flags no se actualizan con uBlock activado» es la cascada funcionando, no un error.)

  • La identidad del dispositivo vive en localStorage, limitada a tu origen. Se emite de forma aleatoria y es seudónima — y la puede leer el propio JavaScript de tu página, la misma clase de valor que la clave SDK que tiene al lado.
  • Las ventanas privadas emiten identidades desechables. Cada sesión privada cuenta como un dispositivo mientras dura; un usuario que borra los datos del sitio también es un dispositivo nuevo. Y una persona en tu sitio web, tu app de iOS y tu app de Android son hasta tres dispositivos — no hay enlace entre plataformas, por diseño.
  • Tus suites de pruebas son gratis. Los navegadores controlados por Playwright, Selenium, Puppeteer o Cypress se declaran como tales, y el SDK emite ahí una identidad sim_: se les sirven flags, nunca se facturan.
  • Las etiquetas de versión no existen en la web. El SDK envía platform y sdkVersion automáticamente, pero no hay un appVersion ni un osVersion fiable para una página — una regla de targeting sobre ellos simplemente nunca coincide con un navegador.