Built by Aryaa Tiwari · LinkedIn · GitHub
Production-grade feature flags for engineering teams. Toggle any feature in any app — instantly, safely, without a deploy.
Built for teams shipping multiple times a day. Every flag change propagates to your SDKs in under 30 seconds.
All SDKs speak to the same REST endpoint. Add any language to your stack in under 5 minutes.
// npm install releasepace-js import { ReleasePace } from 'releasepace-js' const rp = new ReleasePace({ apiKey: 'rp_live_xxxxxxxxxxxx', environment: 'production', }) await rp.connect() if (rp.isEnabled('new-checkout')) { renderNewCheckout() } const label = rp.getString('cta-label', 'Get started') const limit = rp.getNumber('rate-limit', 100)View on npm ↗
// npm install releasepace-js import { ReleasePaceProvider, useFlag } from 'releasepace-js/react' function App() { return ( <ReleasePaceProvider apiKey="rp_live_xxx" environment="production"> <MyApp /> </ReleasePaceProvider> ) } function Checkout() { const newFlow = useFlag('new-checkout') const ctaLabel = useFlag('cta-label', 'Buy now') return newFlow ? <NewFlow label={ctaLabel} /> : <OldFlow /> }View on npm ↗
# pip install releasepace from releasepace import ReleasePace with ReleasePace( api_key='rp_srv_xxxxxxxxxxxx', environment='production', ) as rp: if rp.is_enabled('new-checkout'): render_new_checkout() limit = rp.get_number('rate-limit', default=100) label = rp.get_string('cta-label', default='Get started')View on PyPI ↗
// Maven: io.github.releasepace:releasepace-java:1.0.0 import io.releasepace.ReleasePace; try (ReleasePace rp = ReleasePace.builder() .apiKey("rp_srv_xxxxxxxxxxxx") .environment("production") .build() .connect()) { if (rp.isEnabled("new-checkout")) { renderNewCheckout(); } String label = rp.getString("cta-label", "Get started"); double limit = rp.getNumber("rate-limit", 100); }View on Maven Central ↗
// go get github.com/releasepace/releasepace-go import "github.com/releasepace/releasepace-go/releasepace" client, _ := releasepace.New(releasepace.Options{ APIKey: "rp_srv_xxxxxxxxxxxx", Environment: "production", }) defer client.Close() if client.IsEnabled("new-checkout") { renderNewCheckout() } label := client.GetString("cta-label", "Get started") limit := client.GetFloat("rate-limit", 100)View on pkg.go.dev ↗
# Any language — just one HTTP call curl https://api-prod.releasepace.workers.dev/api/client/features \ -H "Authorization: Bearer rp_srv_xxxxxxxxxxxx" \ -G -d "environment=production" # Response { "version": 1, "environment": "production", "features": [ { "key": "new-checkout", "enabled": true, "value": null }, { "key": "cta-label", "enabled": true, "value": "Get started" }, { "key": "rate-limit", "enabled": false, "value": null } ] }
The features that matter to engineering teams, side by side.
| Feature | ReleasePace | LaunchDarkly | Unleash Cloud |
|---|---|---|---|
| Free tier | ✓ Always free | 14-day trial | ✓ Self-host only |
| Boolean flags | ✓ | ✓ | ✓ |
| String / Number / JSON flags | ✓ | ✓ | ✓ |
| Gradual rollouts | ✓ | ✓ | ✓ |
| Multi-environment | ✓ | ✓ | ✓ |
| Audit log | ✓ | ✓ | Paid only |
| JS, Python, Java, Go SDKs | ✓ | ✓ | ✓ |
| REST API (any language) | ✓ | ✓ | ✓ |
| Open source | ✓ MIT | ✕ | ✓ |
| Self-hostable | ✓ | ✕ | ✓ |
| Edge delivery (Cloudflare) | ✓ | ✕ | ✕ |
| Starting price | $0 | $10/seat/mo | $80/mo |
We moved from LaunchDarkly and cut our infra bill by 90%. ReleasePace does everything we actually used, without the bloat.
The Go SDK integrated in an afternoon. Flags were live in production before end of day. Nothing I've used before has been this frictionless.
Running on Cloudflare Workers means sub-2ms flag reads from anywhere in the world. Our mobile latency improved visibly.
No credit card required. Host on Cloudflare + Supabase free tiers and pay nothing.
Set up in 35 minutes. No infrastructure to manage. Free on Cloudflare + Supabase forever.