Replane Documentation
Replane is a dynamic configuration platform that lets you change application settings in realtime without deploying code. Use it for feature flags, operational tuning, A/B testing, and cross-service configuration.
Get started
Quickstart
Deploy Replane locally in minutes with Docker.
Self-Hosting
Run on your infrastructure with Docker or your own orchestration stack.
Core Concepts
Learn about workspaces, projects, configs, and override rules.
JavaScript SDK
Integrate Replane into Node.js, browsers, Deno, or Bun.
What you can build
| Use case | Description |
|---|---|
| Feature flags | Toggle features on or off without deploying code |
| Gradual rollouts | Roll out features to a percentage of users |
| A/B testing | Serve different values to different user segments |
| Operational tuning | Adjust rate limits, timeouts, and batch sizes in realtime |
| Kill switches | Instantly disable features during incidents |
| Cross-service config | Share settings across multiple services |
How it works
╭───────────────╮
│ PostgreSQL │
╰───────┬───────╯
│
┌─────────────────────────┼─────────────────────────┐
│ │ │
▼ ▼ ▼
╭─────────────────╮ ╭─────────────────╮ ╭─────────────────╮
│ Replane │ │ Replane │ │ Replane │
│ US East │ │ EU West │ │ AP South │
│ ············· │ │ ············· │ │ ············· │
│ config cache │ │ config cache │ │ config cache │
╰────────┬────────╯ ╰────────┬────────╯ ╰────────┬────────╯
│ │ │
│ SSE │ SSE │ SSE
▼ ▼ ▼
╭─────────────────╮ ╭─────────────────╮ ╭─────────────────╮
│ Your App │ │ Your App │ │ Your App │
│ ············· │ │ ············· │ │ ············· │
│ local cache │ │ local cache │ │ local cache │
╰─────────────────╯ ╰─────────────────╯ ╰─────────────────╯
- Create configs in the Replane dashboard — changes are stored in PostgreSQL
- Edge servers pull and cache configs locally for fast reads
- SDKs connect to the nearest edge and cache configs in memory
- Reads are instant —
replane.get()returns from local cache, no network call - Updates stream in realtime via SSE, keeping all caches in sync
High availability — Each Replane node operates independently with its own cache. As long as at least one node is running, your clients will receive configs. If a node goes down, SDKs automatically reconnect to another.
You can run multiple Replane nodes in your own infrastructure to keep config reads close to your applications and improve availability.
Key features
- Realtime updates — Changes propagate instantly via SSE, no polling required
- Override rules — Return different values based on user ID, plan, region, or any context property
- Version history — Every change creates an immutable snapshot with full audit trail
- Instant rollback — Revert to any previous version with one click
- JSON Schema validation — Prevent invalid configurations before they're saved
- Type-safe SDK — Full TypeScript support with automatic type inference
- Self-hosted deployment — Run Replane on your own infrastructure
Example
import { Replane } from '@replanejs/sdk';
const replane = new Replane();
await replane.connect({
sdkKey: process.env.REPLANE_SDK_KEY!,
baseUrl: 'https://replane.example.com',
});
// Get a feature flag
const showNewUI = replane.get('new-ui-enabled');
// Get a value with user context for override evaluation
const rateLimit = replane.get('api-rate-limit', {
context: { userId: user.id, plan: user.plan }
});
// Subscribe to realtime updates
replane.subscribe('new-ui-enabled', (config) => {
console.log('Feature flag changed:', config.value);
});
Next steps
- Follow the Quickstart to deploy Replane
- Read Core Concepts to understand the data model
- Explore Guides for common use cases