Before you start
- A Kameleoon project. Every SDK needs a site code to connect to your Kameleoon account. If you don’t have one yet, add a new project and choose the SDK option when prompted.
- API credentials for server-side SDKs. Server-side SDKs authenticate with a client ID and client secret. Find or generate these in API credentials. Client-side and mobile SDKs authenticate with just your project’s site code.
- A feature flag to test against. Create a feature flag in your account so you have something to check once the client initializes.
Choose your SDK
Select your platform, then your language. Each card links directly to that SDK’s install and initialization steps.Web
JavaScript/TypeScript
Framework-agnostic client-side SDK for any web app. Install using the SDK Installer, or a single
<script> tag with no build step.React
React bindings with hooks and a provider component. Install using the SDK Installer.
Server-side
Node.js
Server-side SDK for Node.js, with manual configuration for Deno. Install using the SDK Installer.
Java
Runs on Java EE or Jakarta EE app servers. Install from Maven Central.
C#
Runs on .NET app servers. Install using NuGet, the .NET CLI, or Paket.
PHP
Runs on PHP backend servers, with optional cron job tracking. Install using Composer.
Python
Runs on Python backend servers, including Django. Install using pip.
Ruby
Runs on Ruby backend servers and Rails apps. Install using RubyGems.
Go
Runs in Go web apps and services. Install directly from the Kameleoon GitHub repository with
go get.Rust
Runs in Rust services and web backends. Requires an async runtime such as
tokio. Install using Cargo.Elixir
Runs in Elixir services and web backends. Includes native code built from the Rust core, so Rust and Cargo must be on your
PATH. Install using Mix.Mobile
Android
For native Android apps. Install using Gradle.
iOS
For native iOS apps built with Swift 5.0 or higher. Install using CocoaPods or Swift Package Manager.
Flutter
For every platform the Flutter framework targets. Install by declaring a dependency in
pubspec.yaml.React Native
Uses the same
@kameleoon/react-sdk package as the React SDK, with React Native-specific dependencies wired in. Install using the SDK Installer.Verify the SDK is initialized
Every Kameleoon SDK initializes asynchronously: the client starts fetching your flag configuration in the background as soon as you create it, and becomes ready shortly afterward. Evaluating a flag before the client is ready can return a default or reference variation instead of the one you expect, so confirm readiness before you rely on flag results. Web and server-side SDKs each expose a blocking call that waits for that first fetch to complete:
Android, iOS, and Flutter don’t block client creation on the first fetch. Use the readiness check documented for that SDK instead, such as
isReady() (Android), .ready (iOS), or isReadyAsync() (Flutter), or wrap flag evaluation in the SDK’s runWhenReady() callback.
Once the client is ready, evaluate the feature flag you created earlier to confirm the integration end to end. For the full lifecycle from initialization through flag evaluation and tracking, see SDK execution flow.
Next steps
- SDK setup and feature flag tutorial: a deeper walkthrough of activating a feature flag, using the Node.js SDK as a reference implementation.
- Supported platforms: the full compatibility matrix of SDK versions and features by language.
- Cross-platform SDKs: pass the same visitor code between web, mobile, and server-side SDKs so a visitor gets a consistent experience everywhere.