CapyDB Docs
Operations

FAQ

Short answers to the questions support actually gets.

Product

Is this a BaaS?

No. CapyDB is managed Postgres hosting: a database, previews, backups, restores, imports, and the API around them. Auth, storage buckets, and edge functions are deliberately someone else's product. (The auth syncs for Clerk, Auth0, and Better Auth exist precisely so you can use a real auth product and keep user data queryable in your database.)

What Postgres version do I get?

Clusters currently run Postgres 17. Imports from older majors work; imports from newer majors do not (no downgrades).

Do I need a proprietary SDK or driver?

No. Standard postgres:// URLs with any standard client. The SDK, CLI, MCP server, and Terraform provider all talk to the control plane (creating previews, running backups), not to your data path.

Which extensions can I use?

13 allowlisted extensions on Postgres 17, including pgvector and PostGIS. Trusted ones you CREATE EXTENSION yourself; the rest (and all of them, if you prefer one path) are enabled per database from the dashboard, API, or capydb extensions. See Extensions.

Will I find out before I hit my storage or connection limit?

Yes. Threshold alerts open at 80% usage (warning) and 95% (critical), and reach you via the dashboard, alert.triggered webhooks, and email to the org billing address when one is configured.

Where does my data live?

On dedicated single-tenant EU cloud infrastructure. EU data residency, no shared database hosts.

Can I have more storage / connections / projects than my plan?

The current ceilings are in Limits. Some are policy rather than physics — contact support with the actual requirement.

Billing

How do plans map to projects?

Billing is per organization (Vibe / Ship / Business via Polar). Project entitlements — storage, connections, preview count — derive from the org plan. You do not pick a plan per project.

What happens when billing lapses?

Provisioning new things stops (organization billing is past_due; provisioning is disabled and friends). Existing databases keep running through the grace of the billing period end; fix the payment and provisioning resumes.

Workflows

How do preview databases differ from branches in other products?

They are real Postgres databases (empty or cloned), not copy-on-write storage branches. Simpler model, no storage-engine magic, TTL cleanup. See Previews.

Can I restore straight over production?

Yes, with friction on purpose: target_kind: "project" plus an explicit confirm_project_overwrite: true plus the org admin role. Restore into a preview first; look before you overwrite. See Backups and restores.

Is zero-downtime migration in?

Not yet — imports are point-in-time copies; logical replication is not currently supported. The realistic path is a short maintenance window, detailed honestly in the import guide.

Do webhooks guarantee delivery?

They guarantee retries: 8 attempts with exponential backoff, then the delivery is marked failed and stays visible in the delivery history. Build receivers idempotent (the X-CapyDB-Delivery id is for exactly that) and treat webhooks as a fast path, with GET /v1/jobs/{id} as the source of truth.

Why did my first Vercel preview build not see DATABASE_URL?

The deploy webhook fires after the first build of a brand-new branch starts, so the branch-scoped env var lands slightly too late for that one build. Redeploy, or use the GitHub Action for strict ordering. Explained in the Vercel guide.

Security

Who can see my database password?

It is stored AES-GCM-encrypted and surfaced to authenticated members of your org through the connections endpoint. API keys are hashed (SHA-256) and unrecoverable — including by us. Full posture in Security.

Are you SOC 2 / HIPAA compliant?

No, and the Security page says so plainly. If that changes, it will be announced, not implied.