Postgres,
without the chores.
A dedicated Postgres database per project, schema-isolated, with native RLS, versioned migrations, and auto-generated TypeScript types. No proprietary abstractions, zero lock-in.
import { aura } from '@/lib/aurabase'export async function GET() {const { data, error } = await aura.from('devices').select('id, name, temperature, last_seen').eq('tenant_id', tenantId).order('last_seen', { ascending: false }).limit(50)// Server-enforced RLS — tenantId is in the JWTreturn Response.json({ data })}
Everything you get from minute one
Schema-per-project
Strict logical isolation: each project gets a dedicated Postgres schema. No shared row-level tenant, no intermediary proxy.
Versioned migrations
Version-controlled SQL, atomic rollbacks, zero-downtime online DDL. TypeScript types regenerate automatically on every migration.
TypeScript codegen
Comprehensive end-to-end types for your tables, views, functions, and relations. Full inference on joins and filters.
Row-Level Security
Declarative, testable policies. The SDK injects the tenant claim into every request — impossible to bypass from the client side.
Premium extensions
pgvector, PostGIS, pg_cron, TimescaleDB, PGMQ, and pg_partman enabled in one click. Pinned versions, available security audits.
Branch previews (roadmap)
One ephemeral database per pull request, cloned seed data, unique preview URL — roadmap feature, coming soon.
One project, four isolated schemas
Each project receives four Postgres sub-schemas: one for your application tables, three for platform primitives, in a dedicated database on your organization's PostgreSQL cluster. Isolation is enforced by PostgreSQL: each project has its own connection role and schema permissions are granted exclusively to it. On the Enterprise plan, a project can also receive a completely dedicated cluster of its own.
project_{uuid}userYour business tables∞project_{uuid}_authsystemusers, sessions, oauth_accounts, mfa_factors, refresh_tokens14project_{uuid}_storagesystembuckets, objects, rls_policies, upload_sessions6project_{uuid}_platformsystemfunctions, jobs, cron_jobs, api_keys, webhooks9Measured in production, under real load
Aurabase · Supabase · Firebase
Frequently asked questions
Is this real Postgres, or a proprietary layer?+
pg_dump gives you your full database back, extensions included, without lock-in.How does schema-per-project isolation work?+
project_ (your tables), ..._auth, ..._storage, ..._platform. The gateway injects the search_path into each connection — queries physically cannot cross another project's boundaries.Can I use my ORMs (Prisma, Drizzle, Kysely)?+
What about performance under heavy production loads?+
How do I migrate from Supabase or Firebase?+
aura import --from supabase imports your schema, RLS policies, and storage buckets. From Firebase: our CLI maps Firestore collections to JSONB Postgres tables and rewrites Security Rules into policies. Expect 1-2 hours for an average project.What is the data residency policy?+
Your Postgres database in 90 seconds.
No credit card required. Schema provisioned, connection URL provided, types generated. You code instead of configuring.