1. Create Your Org
Sign up at app.crovver.com — this is also where you create your organization. Choose your org type:
- B2B — your customers are companies or workspaces (multiple users per billing unit)
- D2C — your customers are individuals (each user is their own billing unit)
2. Create a Plan
In the dashboard, go to Products → Plans and create your first plan.
{
"name": "Pro",
"price_amount": 2900,
"billing_interval": "monthly",
"trial_days": 14,
"features": {
"advanced_analytics": true,
"api_access": true,
"custom_domain": false
},
"limits": {
"api_calls": 10000,
"team_members": 5
}
}
3. Connect a Payment Provider
Go to Settings → Payment Providers and connect Stripe (or another supported provider). Add your API keys — Crovver stores them securely in your secrets manager.
4. Get Your API Keys
Go to Settings → API Keys and generate:
- A Public Key (
pk_live_...) for your frontend
- A Secret Key (
sk_live_...) for your backend
5. Install the React SDK
npm install crovver-react
# or
pnpm add crovver-react
6. Wrap Your App
// app/layout.tsx
import { CrovverProvider } from "crovver-react";
export default function RootLayout({ children }) {
return (
<CrovverProvider
config={{
publicKey: process.env.NEXT_PUBLIC_CROVVER_PUBLIC_KEY,
tenantId: currentUser.id, // Your user/workspace ID
}}
>
{children}
</CrovverProvider>
);
}
7. Gate a Feature
import { FeatureGuard } from "crovver-react";
export function AnalyticsDashboard() {
return (
<FeatureGuard featureKey="advanced_analytics" fallback={<UpgradePrompt />}>
<Analytics />
</FeatureGuard>
);
}
import { useBillingRedirect } from "crovver-react";
export function UpgradeButton() {
const { redirectToCheckout } = useBillingRedirect();
return <button onClick={() => redirectToCheckout()}>Upgrade to Pro</button>;
}
That’s it. When the user clicks the button, Crovver handles the checkout flow end-to-end — plan selection, Stripe session, and webhook processing.
Test end-to-end by creating a plan with test_mode: true and using Stripe
test card 4242 4242 4242 4242.