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 init
npx @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.