Widget
The widget is the surface of the Unchurn retention engine — the part your customers see. It opens as an overlay inside your app, fetches a signed token from your server, then hands off to the engine: eligibility scoring, reason-routed offers, Stripe mutations, verification, and outcome recording. The widget reports the final outcome back through a callback.
You install it in two halves: a server endpoint that mints a signed token, and a client that opens the flow. Pick the path that matches your stack — they all run the same engine.
Pick your stack
| Stack | Use this |
|---|---|
| Any server (Next, Remix, SvelteKit, Hono, Express, Fastify, Koa, Lambda, Workers, Edge) | Server integration — createUnchurnHandler and mintUnchurnToken |
| React (any framework) | React guide — <UnchurnTrigger> and useUnchurn against any backend |
| No bundler / plain HTML | Vanilla guide — CDN script tag and window.unchurn.open |
Configure and customize
| Page | What you’ll do |
|---|---|
| Installation | Get the package or script tag in place |
| Configuration | Callbacks, support handling, pause durations, copy overrides |
| Appearance | Match the widget to your brand without touching host-page CSS |
| Test and live modes | Point the widget at Stripe test or live — and why the two can’t mix |