PiPilot BaaS

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.

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' })
What'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.

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.

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.

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.

Realtime

Live channels for presence and broadcast — multiplayer cursors, chat, live dashboards — without standing up a WebSocket server yourself.

Functions

Deploy custom backend routes for Stripe webhooks or anything server-only. Raw-body signature verification included, not left as an exercise.

Notifications

Web push, our own VAPID stack — register a device and send from the server with pp.notifications, no separate push provider.

Invites

Invite-code lifecycle and access gating as a first-class primitive, not a table you hand-roll every time.

Row-level security, 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.

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.

PiPilot BaaS vs. wiring it yourself

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.

CapabilityPiPilot BaaSStitched together
Database + auth + storage
Time to a working backendOne tool call — no signup to startAccount, project wizard, connection strings
AI generation in the SDKKeyless — no provider accountBring your own OpenAI/Anthropic key
Realtime, push, invitesBuilt inUsually separate services
SDK surfaceOne thin packageMultiple dashboards, multiple SDKs
Query languageOperators + sort + cursor pagination + joinsFull SQL
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.

How it works

From nothing to a working backend, in four moves.

1

Create a backend

One name, no config. A database, auth, storage and AI exist within seconds — no signup wizard to get through first.

2

npm i @pipilot/client

One package. Point it at your anon key from any frontend — Vite, Next.js, Expo, or a static page.

3

Set a policy

Every table defaults to denied. Pick public, authed, or owner in plain language, and the gateway enforces it server-side.

4

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-outClient never sees a service key — anon key is the only browser-safe key25MB/file upload cap enforced before your user's browser does the workExport 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.

Pricing

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

Passion projects & side builds.

$0/month
  • 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
Most popular

Pro

Production apps that need room to grow.

From $25/month
  • 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
  • Email support
  • Data export anytime

Enterprise

Custom quotas and terms beyond self-serve.

Talk to us
  • Everything in Pro, plus:
  • 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.