brily
Module 03 · Listen

NPS that moves
for a reason.

Generic NPS is a number floating in space. Brily ties every response to a user identifier and a release marker. When the number moves, you can tell whether you shipped something good, shipped something bad, or the sample changed.

app.brily.app / projects / ship-os / npscohort: release-1.24
NPS · exposed to release-1.24
54+12 vs control
n = 120
95% CI
0
1
2
3
4
5
6
7
8
9
10
DetractorsPassivesPromoters
Control cohort
42
n = 98 · same 30-day window
Confidence
87%
release improved NPS
Release markers
release-1.22+2
release-1.23−1
release-1.24+12
Recent verbatim · promoters
"The new search finally returns something useful on long queries. I used to work around this with manual filters."user 8392 · Pro plan · 14 months

10 KB in-app widget

A single script tag or npm package. No third-party cookies, no session recording, no tracking pixel. Your users see a question and give an answer.

Release-event triggers

POST a release marker from CI. Surveys fire on the right cohorts at 24 hours, 7 days, or 30 days after exposure. Before and after cohorts compute automatically.

Your user identifier on every response

Every response carries the external user ID you supply. Segment by plan tier, account age, or feature-flag exposure. Pipe the raw data into BI via webhook.

Email delivery when in-app is not enough

Not every product has an in-app surface. Send surveys by email with open and click tracking, or with tracking fully disabled if that is your posture.

Reports that surface verbatim comments

Not a gauge chart. Score over time, segmented by cohort, with verbatim comments sitting next to the release markers that preceded them. You will see which ship hurt.

Export everything, no unlock fee

CSV, JSON, webhook. Your responses, your data. No per-export charge, no enterprise-tier paywall.

In-app widget

10 KB. Zero trackers.

A single script tag or npm package. Calls exactly one endpoint: ours. No third-party cookies, no session recording, no fingerprint. Your users see a question, give an answer, and go back to what they were doing.

  • → Configurable trigger: time-in-app, release event, manual
  • → Brandable: colors, copy, logo, dark and light modes
  • → Accessible by default: keyboard, screen reader, reduced motion
ship-os

How likely are you to recommend ship-os to a colleague?

Not likelyVery likely
What would make it a 10?
10 KB widget · no third-party cookies

The before-and-after cohort report

This is the feature that justifies the module on its own. You ship a release and tell us about it (one API call, or one Slack slash-command). From that moment, every response lands in one of two cohorts: exposed to release X, or not yet exposed. The dashboard compares their NPS distributions.

No more debates about whether NPS moved because you shipped the new onboarding or because marketing pulled in a different cohort of trial users. The numbers come pre-tagged.

What you will not get from us

  • Scripted follow-up emails. NPS-as-a-service vendors tack these on. They irritate users. We do not do them.
  • Third-party analytics injection. Our widget calls exactly one endpoint: ours. It does not fingerprint your users.
  • Gamification. No promoter badges, no leaderboards. Just the raw signal.

Who this is for

Product teams who already run NPS and are frustrated that their current tool makes it hard to connect the score to a release. Agencies running post-launch check-ins for client products without standing up a separate stack.

Related reading

Tie your next release to real feedback.

Free plan covers 100 NPS responses per month. Enough to pilot the module on a single product.