Web-quickstart
Binnen een paar minuten leest je website een echte feature flag — met een duurzame cache, een fail-safe antwoord voor elke situatie, en niets voor jou om in de browser te beheren.
Nul runtime-dependencies; de hele SDK blijft onder een plafond van 10 kB gzip.
1. Installeren
Section titled “1. Installeren”De SDK is pre-release en is nog niet gepubliceerd naar npm. Heeft je team toegang gekregen tot de repository (
FortressFlag_SDK_web), bouw hem dan metpnpm install && pnpm builden gebruik de ESM-output indist/— de import hieronder is het entry point van het package.
2. Start de SDK
Section titled “2. Start de SDK”Eén keer, vroeg in de bootstrap van je pagina of app:
import { Environment, FortressFlag } from "@fortressflag/sdk-web";
FortressFlag.start({ sdkKey: "ffc_prod_…", // van het SDK-sleutelscherm van je project environment: Environment.PRODUCTION,});start keert onmiddellijk terug; gecachte waarden van vorige bezoeken zijn meteen
beschikbaar, en verse waarden komen op de achtergrond binnen. De sleutel is een
clientsleutel — hij is by design zichtbaar in je paginabron.
3. Lees een flag
Section titled “3. Lees een flag”if (FortressFlag.isEnabled("new-checkout", false)) { // render de nieuwe checkout}stringValue en numberValue lezen multivariate flags op dezelfde manier, en
FortressFlag.onChange vertelt je wanneer waarden bewegen zodat je opnieuw kunt renderen.
Dat is het — je flag is live. Zet hem om in het dashboard en open de pagina opnieuw (of wacht een poll af) om hem te zien volgen.
Niets hier throwt ooit
Section titled “Niets hier throwt ooit”Geen enkele aanroep in deze API throwt, en geen enkele promise ervan rejectt. Elke read
resolvet via de cascade: de meest verse opgehaalde waarde, dan de laatste waarde die deze
browser vastlegde, dan je standaard, dan false. Een FortressFlag-storing, een dood
netwerk, een adblocker, een ingetrokken sleutel — ze resolven allemaal naar een flagwaarde,
geen ervan bereikt je code als fout.
(Die adblocker-casus is echt: sommige privacy-extensies blokkeren flagverzoeken. Gecachte waarden blijven serveren, en een browser die nooit iets ophaalde serveert je standaarden — “flags updaten niet met uBlock aan” is de cascade die werkt, geen bug.)
Wat er in de browser leeft, eerlijk gezegd
Section titled “Wat er in de browser leeft, eerlijk gezegd”- De apparaatidentiteit leeft in
localStorage, beperkt tot jouw origin. Hij is willekeurig gemunt en gepseudonimiseerd — en leesbaar door de eigen JavaScript van je pagina, dezelfde klasse waarde als de SDK-sleutel ernaast. - Privévensters munten wegwerpidentiteiten. Elke privésessie telt als apparaat zolang hij duurt; een gebruiker die sitedata wist is ook een nieuw apparaat. En één persoon op je website, iOS-app en Android-app is maximaal drie apparaten — er is geen koppeling tussen platforms, bewust.
- Je testsuites zijn gratis. Browsers aangestuurd door Playwright, Selenium, Puppeteer
of Cypress maken zichzelf bekend, en de SDK munt daar een
sim_-identiteit: flags geserveerd, nooit gefactureerd. - Versietags bestaan niet op het web. De SDK stuurt
platformensdkVersionautomatisch mee, maar er is geen betrouwbareappVersionofosVersionvoor een pagina — een targetingregel daarop matcht een browser simpelweg nooit.
Waar nu heen?
Section titled “Waar nu heen?”- Hoe flags je app bereiken — pollen en de cache
- Apparaatidentiteit en facturering — de identiteit in die opslagsleutel
- Targeting — regels, segmenten en rollouts