alpine-devtools-flagsProduction: https://flags.alpinedevtools.com/production/featurevisor-all.json
Staging: https://flags.alpinedevtools.com/staging/featurevisor-all.json
Use @featurevisor/sdk (npm). Create once:
import { createFeaturevisor } from '@featurevisor/sdk'
const f = createFeaturevisor({
datafileUrl: 'https://flags.alpinedevtools.com/production/featurevisor-all.json',
// or fetch and pass datafile directly
})
| Key | Type | Description |
|---|---|---|
userId |
string |
Anonymous user UUID |
buildType |
string |
"ea" or "ga" |
extensionVersion |
string |
Semver |
alpineVersion |
string |
Alpine.js version on page |
openCount |
integer |
Times devtools panel opened |
browser |
string |
"chrome", "firefox", "safari", "edge", "other" |
rate_promptControls Chrome Web Store rating prompt. Always enabled — uses variables for thresholds.
const vars = f.getVariable('rate_prompt', 'min_opens', {
userId,
buildType,
openCount,
})
| Variable | Default | EA+Engaged | Staging |
|---|---|---|---|
min_opens |
100 | 50 | 10 |
cooldown_days |
30 | 30 | 1 |
const vars = f.getVariables('rate_prompt', context)
const promptCount = getStoredPromptCount()
const lastPromptDate = getStoredLastPromptDate()
if (promptCount >= vars.min_opens && daysSince(lastPromptDate) >= vars.cooldown_days) {
showPrompt()
}
curl https://flags.alpinedevtools.com/production/featurevisor-all.json
# 200 OK, content-type: application/json