Stop rebuilding the same limits for every app.

Per-user caps, plans, credits - the same boring backend, every time. Define plans in the dashboard, wrap the AI call in reserve(): quota holds atomically, no race at 1ms apart.

any provider / your billing / ~30ms added / free to 50k ops/mo

You know this schema. You’ve written it before.

eventsbuilt

Every AI call — quantity, cost, metadata.

→ counters · persons
countersatomic

Atomic increments. reserve holds quota 60s.

→ plans & limits
plans & limitsvisual

Quotas per unit, defined in the dashboard.

subscriptions+ history

Current plan + full change history.

→ plans & limits · credit_ledger · persons
credit_ledgerrollover

Pre-paid credits, partial burns, rollover.

→ persons
persons & funnelsjoined

Every event and quota joined to one profile.

A naive if (usage < limit) leaks under parallel calls. reserve → commit → release(60s TTL) doesn’t.

Every user. What they did, what it cost, where they stand.

Stop checking your users with SQL. The dashboard joins every event and quota back to one person.

vevee.org/usage
Vevee usage dashboard: events, cost, active users, and a per-event-type usage chart for the current period
Real metering. Exact per-user usage and cost, the substrate the rest stands on.
vevee.org/analytics/people
Person attribute breakdowns and a table of end-users with their resolved properties and first-seen times
Real profiles. Every event and quota joined to one person, anonymous to known.

One compose type per job. Define it once, it writes per user.

Fifteen jobs, one API. Every card is a full tutorial with working code.

Pricing

Pay for usage, not seats.

One bill per account, every limit pooled across your workspaces. Start free, upgrade only when you outgrow a tier.

Free

Your first AI feature, metered in production.

Free
Limits
  • Metering operations50k/mo
  • Analytics events10k/mo
  • Apps1
  • Workspaces1
Features
  • AI analyzerIncluded
  • Prompt logsNot included
  • Media uploadsNot included
  • SupportCommunity
Pro

For a launched app with paying users.

$15/mo
Limits
  • Metering operations1M/mo
  • Analytics events5M/mo
  • Apps5
  • WorkspacesUnlimited
Features
  • AI analyzerHigher usage
  • Prompt logs30-day retention
  • Media uploadsIncluded
  • SupportEmail
Max

Scale across apps and millions of calls.

$49/mo
Limits
  • Metering operations10M/mo
  • Analytics events50M/mo
  • AppsUnlimited
  • WorkspacesUnlimited
Features
  • AI analyzerHigher usage
  • Prompt logs90-day retention
  • Media uploadsIncluded
  • SupportPriority
Custom

Your volume and terms, on our metering rails.

Custom
Limits
  • Metering operationsCustom
  • Analytics eventsCustom
  • AppsCustom
  • WorkspacesCustom
Features
  • AI analyzerCustom
  • Prompt logsCustom
  • Media uploadsIncluded
  • SupportDedicated
FAQ

The questions devs ask first.

How do I limit OpenAI usage per user?

Define a per-user quota in the dashboard, then wrap your call in vevee.reserve(). It returns { allowed: false } the moment a user hits their cap, before you spend a cent. Any provider, any unit.

How do I stop users from bypassing rate limits with parallel requests?

A naive if (usage < limit) check has a race condition: two requests arrive in the same millisecond, both pass, both fire. Vevee exposes a reserve → commit → release pattern with a 60-second TTL so the second request sees the first reservation. Auto-released on crash or timeout.

Does Vevee process payments or proxy my AI calls?

Neither. We never touch money: keep your billing (or none) and call upsertSubscription() from your webhook. And your code calls the model directly; we sit beside the call to gate it and record it. Prompts stay yours unless you opt in.

Which AI providers does it support?

All of them. Vevee is provider-agnostic: OpenAI, Anthropic, Gemini, Mistral, Replicate, fal, or your own self-hosted model. You decide what an event is, we meter it.

What is compose() and how is it different from a prompt I write myself?

You define the compose type once in the dashboard — a prompt plus which data it can see. Vevee runs it per user, grounded in that user's real usage and behavior, returns typed output, and meters the AI cost. You never assemble the context or build the data plumbing.

The boring backend is built. Go ship the interesting part.

Five minutes from npm install to your first enforced limit. Free to 50k ops/mo, no credit card.