Thermostat

Know what worked. In a sentence.

Thermostat runs your A/B tests and feature flags, then tells you what happened in plain words. It can run the tests for you too, and email you when it's time to decide.

Free during early access. No card, no sales call.

Running · day 13 of 14 One-page checkout

One page is winning. Purchases are up 6.8%, and nothing you care about got worse.

← WorseBetter →
Ship One page Keep control Example from the demo

The question we keep asking

“Is this truly needed?”

People describe experimentation platforms as powerful and overwhelming. So we started with what you actually have to do, and cut the rest. There are five things to learn. You can learn them this afternoon.

  1. ExperimentsA guess, some variants, and a verdict.
  2. FlagsOn, off, or a value, for whoever you choose. Gates, dynamic configs and parameter stores are all just this.
  3. MetricsThe numbers you care about. Add one any time and every test recalculates.
  4. AudiencesGroups of people you target again and again.
  5. EventsWhat your app sends. Watch it live, or query it with SQL.

Built from what teams complain about

The small things that waste whole afternoons.

“Why did this user get that?”

Enter any ID and see what they get for every flag and test, rule by rule, including where their hash landed.

Overrides nobody remembers

Every override has an end date. It stops on its own, and it's never counted in results.

Changing a metric means a backfill

Results always come from raw events, so a new or edited metric applies to a test's whole history within a minute.

Stats you have to take on faith

Click any number to see how it was worked out. Download the raw assignments and check it yourself.

Peeking at results

Look as often as you like. The ranges stay valid however many times you check, with no setting to remember.

Bots in your numbers

Known crawlers and anyone who saw two variants are left out by default, and you can see how many.

We keep losing people at sign-up. Can you test a shorter form?

Reading what your app sends

Estimating how long it would take

Drafting “Shorter sign-up form”

I've drafted a test with 3 fields against your current 8. Sign-ups decide it, with 30-day retention as a guardrail in case people who sign up faster stay less. At your traffic that's about 9 days.

Needs your OK

I'd like to start this on autopilot, ramping traffic gradually and pausing on harm.

ApproveNot now

AI that does the work

Say what you want to learn. It runs the test.

  • It drafts. Hypothesis, variants, metrics and guardrails, from your real events and traffic.
  • It runs. Autopilot ramps traffic step by step and pauses the moment a guardrail is harmed.
  • It explains. Ask anything in plain words. It reads your data rather than guessing.
  • It keeps going. Give it a goal, and it runs one test after another and emails you what happened.

Nothing that touches your users happens without your yes, unless you turn that on. Everything it does goes in the audit log, under its own name.

Move from Statsig

Keep your code. Change one line.

Thermostat speaks the same protocol as Statsig's SDKs, so you don't rewrite anything. Bring over your gates, experiments, segments and metrics in a few clicks, and with a server key everyone stays in the exact variant they're in now.

We test this against Statsig's real, unmodified SDKs for browsers, Node and Python. In our test suite, its two Node server SDKs and Thermostat agree on all 18,000 checks across flags, configs, experiments, layers and ID lists.

Start your import
new StatsigClient(sdkKey, user, {
  networkConfig: {
    api: 'https://harrowsoft.com/thermostat/v1',
  },
});
That's the whole change. Run it next to Statsig until you're happy.

See it working first.

The demo is a real project with live traffic from a made-up coffee shop, including the experiments that went wrong.