Raw Postgres, fully managed_
Appwrite runs the engine and you keep the SQL. Connect with psql or any driver, bring your own ORM and migrations, and get the full PostgreSQL feature set with nothing in between.
orders-prod
Managed PostgreSQL
Pooler
On
Replicas
2 sync
PITR
7 days
- Compute credits on every Pro plan
- $10/mo
- Every Appwrite Cloud region
- 6 regions
- High availability maximum
- 5 replicas
- Restore to any moment
- PITR
A PostgreSQL endpoint, nothing else in the way
Every database gets its own hostname on port 5432, TLS, and an admin role that owns it. Connect with psql, any driver, or any ORM, and copy a ready-made DSN, .env, or Prisma snippet from the Console.
Credentials
:5432postgresql://admin:••••••••@db-7f3a2c.fra.appwrite.center:5432/db-7f3a2cBuilt-in connection pooling
PostgreSQL spends a backend process per connection, so serverless functions and horizontally scaled app servers exhaust a specification fast. Point runtime traffic at the pooler, same hostname and credentials, and many clients share a small pool of server connections.
Clients
Pooler
A full extension catalog, at no extra cost
Each database lists every extension its PostgreSQL version can install, from pgvector and PostGIS to pg_trgm, pgcrypto, and many more. Free to install, up to 50 per database.
Vector data type and similarity search for embeddings, next to your relational data.
Trigram matching for fuzzy string search, typo tolerance, and similarity ranking.
Spatial types, indexes, and functions for geographic objects and radius queries.
Represent and query hierarchical, tree-like data such as categories and org charts.
Cryptographic functions for hashing and encrypting values inside the database.
Case-insensitive text type, so comparisons ignore letter case.
A sample of the catalog. Your database lists every extension it can install, including hstore, uuid-ossp, and many more.
Install from a Server SDK
await postgresql.createExtension({
databaseId, name: 'vector'
})Snapshot branches in minutes
A branch is an isolated copy taken from a storage snapshot, with its own endpoint and the parent credentials. The parent never pauses writes. Rehearse a migration or give every pull request a database.
orders-prod
Parent database
db-2b9d41.fra:5432
db-5c7e08.fra:5432
Backups off the instance, restores on demand
Every database ships with a backup policy and backups are stored off the instance. Add your own schedule and retention, or enable point-in-time recovery to restore to any moment in the last 35 days.
Backups
Point-in-time recovery
14:32:05 UTC
Replicas with automatic failover
Add up to five streaming replicas and pick how safe writes should be: asynchronous, synchronous, or quorum. If the primary stops responding, the most caught-up replica is promoted and the hostname repointed.
Primary
db-7f3a2c.fra
Streaming to 3 replicas
Automatic failover
Same hostname, same port
Live metrics and online resizing
The Monitor tab tracks CPU, memory, queries per second, cache hit ratio, and disk growth with nothing to install. Inspect live sessions, cancel a query, then resize compute online when it is time.
CPU
38%
Queries / sec
1.4k
Cache hit
99.4%
Connections
142 / 1,000
Last 6 hours
Works with your ORM and toolstack
Use the same hostname and credentials with Prisma, Drizzle, Sequelize, TypeORM, SQLAlchemy, psql, and the rest of your PostgreSQL toolchain. Copy DSN, .env, and ORM snippets from the Console Credentials tab, or follow integration guides in the docs.
Prisma
Type-safe schema and client for Node.js and TypeScript.
Drizzle
Lightweight TypeScript ORM with SQL-like query builder.
Sequelize
Promise-based ORM for Node.js with multi-dialect support.
TypeORM
Active Record and Data Mapper patterns for TypeScript.
SQLAlchemy
Python SQL toolkit and ORM for expressive queries.
psql
Official PostgreSQL CLI for ad-hoc SQL and schema exploration.
Specifications and pricing
Fixed monthly compute tiers with reserved CPU, memory, and connections.
| Tier | CPU | Memory | Price |
|---|---|---|---|
| Starter | 1 core | 1 GB | $10/mo |
| Standard | 2 cores | 2 GB | $20/mo |
| Standard Plus | 2 cores | 4 GB | $49/mo |
| Professional | 4 cores | 8 GB | $85/mo |
| Business | 4 cores | 16 GB | $160/mo |
| Business Plus | 4 cores | 32 GB | $299/mo |
| Enterprise | 8 cores | 32 GB | $425/mo |
| Enterprise Plus | 8 cores | 64 GB | $699/mo |
| Scale | 16 cores | 64 GB | $999/mo |
| Scale Plus | 16 cores | 128 GB | $1,699/mo |
| Scale Pro | 32 cores | 128 GB | $2,399/mo |
| Scale Max | 32 cores | 256 GB | $4,099/mo |
$10 of compute credits for database usage included every month.
FAQ_
A managed PostgreSQL database is the raw engine with its own compute, storage, and credentials. You talk to it over the PostgreSQL wire protocol instead of an Appwrite SDK, so schema, migrations, roles, and queries are standard PostgreSQL. Use TablesDB, DocumentsDB, or VectorsDB when you want Appwrite SDKs and platform permissions for app data instead.
New databases run PostgreSQL 18 by default, and you can pick PostgreSQL 17 at create time. Upgrades run online: a second instance is provisioned on the new version, data streams over with logical replication, and traffic cuts over once it catches up. Connections are closed at the cutover, so your application has to reconnect.
Every Appwrite Cloud region: Frankfurt, New York, San Francisco, Singapore, Sydney, and Toronto. A database takes the region of the project that owns it, so create your project close to your users first. Each database gets a hostname in the form db-<hash>.<region>.appwrite.center and the data does not leave the region.
PostgreSQL uses the same dedicated compute tiers as pricing: reserved CPU, memory, and connections, from $10/mo per database. Reads and writes are included in the tier. High availability replicas are billed at the full compute tier price per replica, and point-in-time recovery is +20% of base. Extra storage and bandwidth are usage-based overage. Managed databases need a paid plan.
The limit comes from your specification, from 100 on the smallest tier up to a platform cap of 10,000. Since PostgreSQL spends a backend process per connection, point runtime traffic at the pooler, where many clients share a small pool of server connections. Keep migrations and long administrative sessions on a direct connection.
The engine reports every extension this PostgreSQL version can install, so the catalog is the full set available to this database, not a short list. That includes pgvector, PostGIS, pg_trgm, pgcrypto, and many more. Installs are free, up to 50 per database. Uninstalling always cascades, so anything depending on the extension is dropped with it.
Backups are snapshots on a schedule, stored off the instance, with your own cron and retention on top of the default policy. Point-in-time recovery is an add-on that archives the write-ahead log continuously, so you can restore to any moment in a window of 1 to 35 days. Both restore in place, so anything written after the target is discarded.
High availability adds up to five streaming replicas, each a full copy on its own compute. Pick asynchronous replication for the fastest writes, or synchronous or quorum when you cannot lose acknowledged writes. When the primary stops responding, the most caught-up replica is promoted and the hostname repointed, so a driver pool with retries usually recovers on its own.
A branch is a short-lived copy created from a storage snapshot, with its own endpoint and the parent credentials. The parent is never frozen and takes no write pause. Rehearse a destructive migration, reproduce a bug, or give every pull request its own database. Branches never merge back and expire after 24 hours by default, 7 days at most.
Appwrite manages the container, storage, networking, TLS, backups, replication, security patches, and engine upgrades. You own everything above the wire protocol: schema, migrations, indexes, roles and grants, queries, extensions, and the IP allowlist. There is nothing Appwrite-specific in your application code.
Yes, with the standard PostgreSQL tooling you already use. Run your dump and restore over a direct connection, because tools like pg_dump expect one session for the whole run, then point your application runtime at the pooler. Any client that speaks the wire protocol works, including pgAdmin and DataGrip.
Start building on managed PostgreSQL_
Create a database in your project region, copy the connection string, and run your first query.
Explore Appwrite_
Modular backend services that share the same project, permissions model, and console.