Feature flag platform
Ship at midnight.
Roll back by breakfast.
Targeted rollouts and gradual launches with a tiny SDK. Flag checks happen in your process, in microseconds — no network call, no shared infrastructure, no surprises in your latency budget.
No credit card. Cancel any time.
Built for production
Three things that actually matter at scale.
Sub-millisecond flag checks
Evaluation runs in your process, not ours. User attributes you pass to the SDK (email, country, plan, anything) never leave your runtime. Typical evaluation time is under 0.05 ms. Zero network calls on your hot path.
Fail-open by design
Flag config is cached in multiple layers — at the CDN edge, in the SDK, and locally in the browser. Backed by AWS with multi-region redundancy. If we have an outage, your code keeps evaluating with the most recent values. We don't take your traffic down with us.
~30-second turnaround
Flip a flag in the dashboard; SDKs see it on their next poll (default 30 s, configurable to 1 s). For kill-switch-grade urgency, the SDK's polling interval is yours to tune.
How it works
- 1
Create a project
Sign up, name your project, copy the client SDK key. 60 seconds.
- 2
Drop in the SDK
One npm install, one nightroll.init(). Existing code stays the same.
- 3
Wrap a code path
if (client.isEnabled('new-checkout', user)) { ... } else { ... }
- 4
Roll out gradually
Start at 1%, watch your metrics, raise. Roll back instantly when something's wrong.
Drop it in
Same shape across every language we ship.
import nightroll from '@nightroll/js';
const client = nightroll.init(process.env.NIGHTROLL_CLIENT_KEY);
await client.ready();
const user = { id: currentUser.id, attributes: { email: currentUser.email } };
if (client.isEnabled('new-checkout', user)) {
// new behavior
}What happens if…
Plain answers to the questions that should drive your vendor choice.
Your product keeps working. Flag config is cached in multiple layers — at the CDN edge, in the SDK's in-memory store, and (in browsers) in local storage — so your code keeps evaluating with the most recent values even if our service is unreachable. We run on AWS with multi-region redundancy and target 99.9%+ uptime.
Your product keeps working. The SDK falls back to its cached flags and slows down polling until the next billing cycle or an upgrade. No errors propagate to your users.
No throttle on evaluation. Overage is billed at $1.00 per 1,000 MAU above plan. Email warnings fire at 80% and 100% — no surprise bills.
Open the dashboard and rotate. We keep two active keys per project during the grace period so you can roll out the new key without downtime, then revoke the old one when you're confident.
SDKs that still hold the deleted flag fall back to the default value you passed at the call site. No 500s, no crashes.
Plain conditions still match. Percentage rollouts can't fire (we need an id to assign a stable bucket), so the default variation gets served.
Good — neither do we. Flag evaluation runs entirely in the SDK; attributes (email, plan, country, anything you pass) never leave your process. The only thing the SDK sends us for analytics is the userId you choose, batched once a minute, so we can count MAU for billing. If your userIds are themselves personal data, hash them client-side before passing to the SDK.
How we compare
Honest, with the gaps marked.
| Nightroll | LaunchDarkly | Statsig | Flagsmith | |
|---|---|---|---|---|
| Free trial without credit card | 15 days, no card | 14 days | Free tier + paid trial | Free tier |
| Pricing starts at | $9/mo | Custom | Free tier; paid varies | Free / $0 |
| SDK languages today | JS, TS, React, Node (Python/Go/Java/Ruby on roadmap) | Most major languages | Most major languages | Most major languages |
| Flag evaluation | In-process (SDK) | In-process (SDK) | In-process (SDK) | In-process or remote |
| Self-hosted option | No (SaaS only) | Relay proxy (cache) | Open source (Bucketeer-like) | Yes (self-host the whole platform) |
Pricing
- 1 projects · 1,000 MAU
- 20 flags · 1 seats
- 5 projects · 25,000 MAU
- 100 flags · 5 seats
- 25 projects · 250,000 MAU
- 1,000 flags · 25 seats
Ready in two minutes
Start the 15-day trial. We don't ask for a card. Cancel by closing the tab.