The backend built for AI-written apps.
Database, auth, storage, realtime, functions, and keyless AI — from one thin SDK, with no signup to start. Your agent provisions it; you ship.
db · auth · storage · realtime · functions · AI · push · invites — one package
import { createClient } from '@pipilot/client' const pp = createClient(import.meta.env.VITE_PIPILOT_ANON_KEY) // Per-user data — the gateway enforces the policy, not your component.await pp.auth.signIn()const notes = await pp.from('notes').select({ sort: [{ field: 'createdAt', dir: 'desc' }],}) // AI, keyless — no provider account to set up.const { text } = await pp.ai.generate({ prompt: 'Summarize these notes' })One SDK. Not six dashboards.
Use one piece or all of it — every table, file, channel, and AI call goes through the same client, gated by the same policy engine.
- Database
- Schemaless rows with real query power — equality, comparison operators, multi-key sort, cursor pagination, and joins. No SQL to write, no schema to design first.
pp.from('posts').select()- Auth
- End-user accounts out of the box — OAuth (Google/Apple/X) or first-party email/password. Sessions refresh silently; you never write a token-refresh timer.
pp.auth.signIn()- Storage
- Upload a File or Blob straight from an <input>. Signed download URLs, policy-gated access, a 25MB/file cap enforced before your user waits on a slow upload.
pp.storage.upload(path, file)- Realtime
- Live channels for presence and broadcast — multiplayer cursors, chat, live dashboards — without standing up a WebSocket server yourself.
pp.channel('room-1')- Functions
- Deploy custom backend routes for Stripe webhooks or anything server-only. Raw-body signature verification included, not left as an exercise.
pp.functions.invoke('name')- AI — keyless
- pp.ai.generate() runs server-side with no provider account, no API key, no billing relationship to set up. This is the one no database company can bolt on.
pp.ai.generate()- Notifications
- Web push, our own VAPID stack — register a device and send from the server with pp.notifications, no separate push provider.
pp.notifications.subscribe()- Invites
- Invite-code lifecycle and access gating as a first-class primitive, not a table you hand-roll every time.
pp.invites.create()
baas_data { action: "set_policy", table: "notes", read: "owner", write: "owner", owner_column: "owner_id"}public- Anyone with your anon key can read or write.
authed- Any signed-in end user — no anonymous access.
owner- Each signed-in user sees only their own rows. The gateway stamps and filters by owner — never trust a client-supplied id.
none- Anonymous access denied outright. Service key only. This is every table's default.
Not a Postgres alternative. A faster start.
We don't out-feature a mature Postgres platform, and we won't pretend to. What we remove is the setup between an idea and a working backend.
| Feature | Stitched together | PiPilot Cloud |
|---|---|---|
| Basics | Included | Database, auth and storage |
| Setup | Account, project wizard, connection strings | One tool call — no signup to start |
| AI | Bring your own OpenAI/Anthropic key | Keyless generation in the SDK — no provider account |
| Realtime | Usually separate services | Realtime, push and invites built in |
| SDK | Multiple dashboards, multiple SDKs | One thin package |
| Queries | Full SQL | Operators + sort + cursor pagination + joins |
| Agents | Not included | Agent-native provisioning |
If your app needs SQL, complex joins across large tables, or a contractual uptime SLA, we're not the right fit yet — see our docs for the full list of limits.
- Create a backend
- One name, no config. A database, auth, storage and AI exist within seconds — no signup wizard to get through first.
- npm i @pipilot/client
- One package. Point it at your anon key from any frontend — Vite, Next.js, Expo, or a static page.
- Set a policy
- Every table defaults to denied. Pick public, authed, or owner in plain language, and the gateway enforces it server-side.
- Ship
- Read, write, upload, generate, and push — from one SDK, in a handful of lines, with nothing else to provision.
Locked down by default, not by convention.
Every table starts denied. Access is opt-in, enforced on the server — never something a client can talk its way around.
- Every table denied by default — policies are opt-in, not opt-out
- Client never sees a service key — anon key is the only browser-safe key
- 25MB/file upload cap enforced before your user's browser does the work
- Export your data anytime — you're never locked in waiting on us
- Policy-enforced, server-side
- authed/owner policies are checked on the gateway, not trusted from the client — a browser can never fake another user's identity.
- Anon vs. service, clearly separated
- The anon key does nothing without a policy allowing it. The service key never belongs in browser code, and we say so at the point you copy it.
- Export, not lock-in
- Take your data out whenever you want. We'd rather earn the renewal than make leaving hard.
Predictable pricing, designed to scale.
Start for free. Pay for what you use past that. No seats, no surprise invoice — free plans hard-stop at the limit instead of billing you.
Free
$0/month
Passion projects & side builds.
A real backend, not a trial. Free plans hard-stop at the limit instead of billing you.
No signup to start.
- Unlimited API requests
- 1,000 monthly active users
- 500 MB database storage
- 1 GB bandwidth
- 500 MB file storage
- 50 AI calls/day
Pro
$25/month
Production apps that need room to grow.
Starting price · usage past the included amounts is metered
Pay for what you use past the included amounts. No seats, no surprise invoice.
Data export anytime.
- Everything in Free, plus
- 50,000 MAU, then $0.00325/MAU
- 5 GB DB, then $0.125/GB
- 50 GB bandwidth, then $0.09/GB
- 10 GB storage, then $0.0213/GB
- 5,000 AI calls/day, then metered
Enterprise
Custom
Custom quotas and terms beyond self-serve.
Talk to us about limits, support and onboarding that self-serve does not cover.
sales@pipilot.dev
- Everything in Pro, plus
- Custom MAU / storage / bandwidth
- Priority support
- Custom onboarding from Supabase/Firebase
- 14-day+ log retention
Everything in each plan
Free
- Unlimited API requests
- 1,000 monthly active users
- 500 MB database storage
- 1 GB bandwidth
- 500 MB file storage
- 50 AI calls/day
- Community support
- 2 active backends
Pro
- Everything in Free
- 50,000 MAU, then $0.00325/MAU
- 5 GB DB, then $0.125/GB
- 50 GB bandwidth, then $0.09/GB
- 10 GB storage, then $0.0213/GB
- 5,000 AI calls/day, then metered
- Email support
- Data export anytime
Enterprise
- Everything in Pro
- Custom MAU / storage / bandwidth
- Priority support
- Custom onboarding from Supabase/Firebase
- 14-day+ log retention
Read the docs for full plan details.
Stop wiring up a backend. Just call the SDK.
Free to start — a real backend, not a trial. Upgrade when you actually need the room.
No signup to start · Every table denied by default · Export your data anytime