Skip to content
PiPilot Cloud

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.

Read the docs

db · auth · storage · realtime · functions · AI · push · invites — one package

code · App.tsx
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' })
01What's included

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()
02Policies, in English

Every table starts denied.

No policy, no access — that's the default. Set one in plain language and the gateway enforces it server-side on every call, never in your component.

code · set_policy
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.
03Compared

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.

PiPilot Cloud compared with stitching a backend together yourself
FeatureStitched togetherPiPilot Cloud
BasicsIncludedDatabase, auth and storage
SetupAccount, project wizard, connection stringsOne tool call — no signup to start
AIBring your own OpenAI/Anthropic keyKeyless generation in the SDK — no provider account
RealtimeUsually separate servicesRealtime, push and invites built in
SDKMultiple dashboards, multiple SDKsOne thin package
QueriesFull SQLOperators + sort + cursor pagination + joins
AgentsNot includedAgent-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.

04How it works

From nothing to a working backend, in four moves.

pipilot · backend4 STEPS
  1. 01created the backendbaas_provision
  2. 02installed the client@pipilot/client
  3. 03set a policy per tablebaas_data
  4. 04shippedsrc/lib/pipilot.ts
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.
Security model

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.
05Pricing

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.

Preview pricing

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
Preview pricing

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
Preview pricing

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