For developers

🚚 Plumbing. 🏗️ Scaffolding. 🧰 Boilerplate. We shipped the boring parts — your AI builder ships the fun ones. 🚀

Claude
Vibecode
Lovable
Replit
Bolt
Supabase
and more
~/your-app
npm install @proma-dev/sdk
TypeScriptOAuth 2.1 / PKCEREST + OpenAPIPay per result

Auth

Sign-in, MFA, recovery

OAuth 2.1 + PKCE. Hosted accounts. Tenant isolation via Postgres RLS — you never write auth code again.

+0.04

AI gateway

Pay per AI outcome

One client, every model. Proma meters credits per outcome, splits revenue, and pays you out — no Stripe wiring.

@alice#design-team

User management

@mentions, #groups, invites

Invite teammates, mention people with @, group them with #. Permissions, roles, and audit trails included.

Notifications

Email templates via API

Trigger transactional emails and in-app alerts from one endpoint. Customizable templates included — no Resend or Postmark to integrate.

~6

lines to login

0

servers to run

< 5 min

install → first call

OAuth 2.1

standard, not magic

Pick your stack

import {
  PromaProvider,
  usePromaAuth,
  useOAuthCallback,
} from '@proma-dev/sdk/react'

// 1. Wrap once. Auth + billing wired up.
<PromaProvider
  clientId={process.env.NEXT_PUBLIC_PROMA_CLIENT_ID!}
  redirectUri="https://yourapp.com/callback"
  scopes={['profile', 'credits', 'ai:chat']}
>
  <App />
</PromaProvider>

// 2. Use anywhere.
function Composer() {
  const { user, login, client } = usePromaAuth()
  if (!user) return <button onClick={() => login()}>Sign in</button>

  const reply = await client.ai.chatText([
    { role: 'user', content: 'Pitch this in one sentence.' },
  ])
  // → user is charged. you earn. no servers, no Stripe.
}
$ tip: Same client. Same scopes. Different framework.

Stop rebuilding plumbing.

Spin up an OAuth client, drop in the SDK, ship a managed AI app this afternoon.