Guides integration of FeatBit Go Server SDK for real-time feature flag evaluation in server-side Go apps like HTTP servers, workers, and CLI tools.
npx claudepluginhub joshuarweaver/cascade-code-devops-misc-1 --plugin featbit-featbit-skillsThis skill uses the workspace's default tool permissions.
Use for server-side Go applications — HTTP servers, background workers, CLI tools — that need real-time feature flag evaluation.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Use for server-side Go applications — HTTP servers, background workers, CLI tools — that need real-time feature flag evaluation.
Why server-side SDK: maintains one persistent WebSocket connection, synchronizes all flag data locally in under 100 ms, then evaluates every flag locally in under 10 ms per call on average. Do not use for frontend JavaScript or mobile applications — those require a client-side SDK.
https://github.com/featbit/featbit-go-sdk
Copy and track progress:
Step 1: Install the module
Run:
go get github.com/featbit/featbit-go-sdk
Step 2: Create the client
Use this minimal setup:
client, err := featbit.NewFBClient(envSecret, streamingUrl, eventUrl)
if err != nil {
return err
}
defer client.Close()
Step 3: Evaluate the first feature flag
Use the official pattern:
user, _ := interfaces.NewUserBuilder("<unique-user-key>").UserName("Jane").Build()
_, detail, _ := client.BoolVariation("flag-key", user, false)
fmt.Printf("flag %s returns %s, reason: %s\n", detail.KeyName, detail.Variation, detail.Reason)
Step 4: Validate the integration
If client.IsInitialized() is false or evaluation returns the fallback unexpectedly, verify envSecret, streamingUrl, and eventUrl, then retry.
After the client is initialized, evaluate a feature flag with a user and a fallback value:
user, _ := interfaces.NewUserBuilder("<unique-user-key>").UserName("Jane").Build()
value, detail, _ := client.BoolVariation("flag-key", user, false)
fmt.Println(value, detail.Reason)
Use the first return value when only the flag result is needed. Use detail when the evaluation reason is also needed — detail.Reason explains why the value was returned, detail.KeyName and detail.Variation identify the matched variation.
Also available for non-boolean flags: Variation (string), IntVariation, DoubleVariation, JsonVariation.
Add custom properties to FBUser when targeting rules depend on user attributes beyond key and userName:
user, _ := interfaces.NewUserBuilder("a-unique-key-of-user").
UserName("bob").
Custom("age", "15").
Custom("country", "FR").
Build()
Use Custom(key, value) for any attribute that must be referenced in feature flag targeting rules.
AllLatestFlagsVariations to get all flags for a user at once.