Salta ai contenuti

Quickstart web

In pochi minuti il tuo sito web leggerà un feature flag vero — con una cache durevole, una risposta fail-safe per ogni situazione e niente da gestire nel browser.

Zero dipendenze a runtime; l’intero SDK sta sotto un tetto di 10 kB gzip.

L’SDK vive in un repository pubblico su GitHub — installalo direttamente da lì, fissato alla release:

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

Il pacchetto si compila da solo all’installazione, e l’import qui sotto è il suo entry point.

Una volta, presto nel bootstrap della tua pagina o app:

import { Environment, FortressFlag } from "@fortressflag/sdk-web";
FortressFlag.start({
sdkKey: "ffc_prod_…", // dalla schermata Chiavi SDK del tuo progetto
environment: Environment.PRODUCTION,
});

start ritorna immediatamente; i valori in cache delle visite precedenti sono disponibili subito, e i valori freschi arrivano in background. La chiave è una chiave client — è visibile nel sorgente della tua pagina per progettazione.

if (FortressFlag.isEnabled("new-checkout", false)) {
// renderizza il nuovo checkout
}

stringValue e numberValue leggono i flag multivariati allo stesso modo, e FortressFlag.onChange ti avvisa quando i valori cambiano così puoi ri-renderizzare.

Fatto — il tuo flag è online. Cambialo nella dashboard e riapri la pagina (o aspetta un poll) per vederlo seguire.

Nessuna chiamata di questa API lancia eccezioni, e nessuna promise che restituisce viene rifiutata. Ogni lettura si risolve attraverso la cascata: il valore più fresco recuperato, poi l’ultimo valore che questo browser ha registrato, poi il tuo valore predefinito, poi false. Un’interruzione di FortressFlag, una rete morta, un ad blocker, una chiave revocata — tutti si risolvono in un valore di flag, nessuno raggiunge il tuo codice come errore.

(Il caso dell’ad blocker è reale: alcune estensioni per la privacy bloccano le richieste dei flag. I valori in cache continuano a essere serviti, e un browser che non ha mai scaricato nulla serve i tuoi valori predefiniti — «i flag non si aggiornano con uBlock attivo» è la cascata che funziona, non un bug.)

  • L’identità del dispositivo vive in localStorage, legata alla tua origine. È generata casualmente ed è pseudonima — e leggibile dal JavaScript della tua stessa pagina, la stessa classe di valore della chiave SDK che le sta accanto.
  • Le finestre private generano identità usa e getta. Ogni sessione privata conta come un dispositivo finché dura; anche un utente che cancella i dati del sito è un nuovo dispositivo. E una persona sul tuo sito web, sulla tua app iOS e sulla tua app Android è fino a tre dispositivi — non esiste alcun collegamento tra piattaforme, per scelta.
  • Le tue suite di test sono gratis. I browser pilotati da Playwright, Selenium, Puppeteer o Cypress si dichiarano, e lì l’SDK genera un’identità sim_: ricevono i flag, mai fatturati.
  • I tag di versione non esistono sul web. L’SDK invia automaticamente platform e sdkVersion, ma non esiste un appVersion o un osVersion affidabile per una pagina — una regola di targeting su quelli semplicemente non corrisponde mai a un browser.