Drop it into the stack you already have
The install is a script tag on the signup page and one call from your own server. What changes between frameworks is where those two lines go, so each guide below is the same integration written in the language you are actually using.
Pick your framework
Each page carries the tag, the server call in that language, and what to do with each of the three answers.
Next.js (App Router)
The tag, the call and the three answers, in Next.js (App Router).Express
The tag, the call and the three answers, in Express.Django
The tag, the call and the three answers, in Django.Rails
The tag, the call and the three answers, in Rails.Laravel
The tag, the call and the three answers, in Laravel.
Or skip the reading
The CLI detects your framework, writes the environment variables, injects the tag into your signup page and then calls the API once to prove the install works before it tells you it is done.
npx onetrial initnpx @onetrial/mcp # the decision feed, the sandbox and the rules, as agent tools
What else it sits beside
- Any auth you already run
OneTrial answers before the account exists, so it sits in your signup handler rather than inside your auth provider. Own email and password, Supabase, Clerk, Auth0 and Firebase all work the same way, and the docs carry a quickstart for each.
- Stripe, for card fingerprints
Connect your own Stripe account and the strongest signal available becomes readable: the fingerprint of the card, without the number ever reaching us. Optional, and everything else works without it.
- Your coding agent
The dashboard hands Cursor or Claude Code a prompt carrying your real key, and @onetrial/mcp exposes the decision feed, the sandbox and the rules as agent tools.