Powered by SolanaOn-chain control plane

Feature flags on Solana.

Control application features without redeploying. Deplite turns feature flags into a shared on-chain configuration layer.

app.ts
typescript
import { createDepliteClient } from "deplite"

const client = createDepliteClient({
  programId: "...",
  admin: "...",
})

const enabled = await client.get("version_intelligence")

No redeploys

Flip a flag and your apps update instantly. No CI, no rollouts, no downtime.

Shared state across apps

One on-chain configuration source. Every client reads the same truth.

No backend required

Skip the config service. Solana is your highly-available control plane.

How it works

A control plane on-chain.

Three simple steps from flag creation to runtime behavior change.

1

Create & toggle flags

Manage flags from the Deplite dashboard. One click to enable or disable.

2

State stored on Solana

Each flag is a PDA. Updates are signed transactions, verifiable by anyone.

3

Apps read & react

SDK clients read flag state and subscribe to live updates over RPC.

Why Solana

Why Solana, not a backend?

Deplite replaces your feature flag backend with a shared on-chain state layer.

Solana gives you something a typical SaaS feature-flag service can't: a verifiable, globally consistent state layer with no single operator.

Shared global state

A single source of truth across services, regions, and teams.

Verifiable & transparent

Every flip is a signed, on-chain transaction. Auditable by default.

No centralized backend

No config server to operate, scale, or page someone about at 3am.

Composable across apps

Other programs and apps can read your flag state. Build on top.

Live demo

See on-chain flags in action.

Flip a flag → watch UI update instantly. This app enables and disables features based on on-chain state, with no redeploy.

Developer experience

Two lines to read. One to subscribe.

A tiny SDK that gets out of your way.

Read a flag
ts
const enabled = await client.get("feature_name")
Subscribe to changes
ts
client.subscribe("feature_name", (val) => {
  // react instantly
})