Products · Databases

A managed database
with a real client built in.

Provisioning a database is the easy part. What you actually spend your day in is the tooling — so Darwa ships the browser, the query editor, the index manager, and the assistant with every instance. No pgAdmin, no TablePlus, no SSH tunnel.

Create a databaseSee pricing
No client to installNo free-tier expiryBackups included
storefront · postgres 17healthy
storefrontTables            24
      orders          1.2M
      customers       84k
      line_items      4.1M
      payments        1.1M
  ▸ Views             6
  ▸ Materialized      2
  ▸ Indexes           41
  ▸ Functions         9
  ▸ Triggers          4
  ▸ Sequences         24
  ▸ Extensions        3
  ▸ Users             5
query-1.sqlslow-orders.sqlsaved · monthly-revenue
  1  SELECT c.country, count(*) AS orders, sum(o.total) AS revenue
  2  FROM orders o
  3  JOIN customers c ON c.id = o.customer_id
  4  WHERE o.created_at >= now() - interval '30 days'
  5  GROUP BY c.country
  6  ORDER BY revenue DESC LIMIT 5;
Run ⌘↵explainformatsavehistory
countryordersrevenue
1DE18,402912,441.20
2US16,118884,205.65
3IN14,904402,118.40
4AE9,221388,904.00
5SG7,860241,660.75
rows 5time 41 msplan index scanexport CSV · JSONconnection pooled
darwadatabasecreate

One click, then a connection string.

Pick an engine, a version, and a region. The instance, credentials, TLS, pooling, and the first backup schedule are configured before the page finishes loading.

Choose the versionPin a major version and stay there, or opt into automatic minor upgrades in a maintenance window you set.
Choose the regionPut the database in the same region as the service that reads it, on the private network.
Shared or dedicatedShared instances for previews and side projects, dedicated CPU and memory for production.
Instant connection stringsInjected into your services as environment values — never pasted into a repository.
Connection poolingPgBouncer-style pooling in front of PostgreSQL and MySQL, so a scaled-out worker pool cannot exhaust connections.
Import and exportRestore a dump on creation, or export to SQL, CSV, or JSON at any time.
Created in 34 seconds
storefront · postgres 17ready in 34s
Regioneu-centralsame region as app-backendset
InstanceDedicated · 4 GB · 50 GB diskresize any time, billed per secondset
TLSsslmode=require enforcedcertificate managed and rotated
PoolingPooler on :6543 · 200 clientsworkers cannot exhaust connections
BackupsDaily 02:00 · PITR 14 daysrestore to any second in the window
Public accessClosedprivate network only — open it deliberately
DATABASE_URL injected into 2 servicesfirst backup done
darwadatabaseengines

Four engines done properly, not fourteen done thinly.

PostgreSQL, MySQL, MariaDB, MongoDB, and Redis are available now with the full management experience. The rest are on the list — and we would rather ship the UI for these first.

DatabaseTypeStatus
PostgreSQLRelational (SQL)Available
MySQLRelational (SQL)Available
MariaDBRelational (SQL)Available
MongoDBDocument (NoSQL)Available
Redis / ValkeyIn-memory key-valueAvailable
SQLiteEmbedded SQLComing soon
ClickHouseAnalytics (OLAP)Coming soon
TimescaleDBTime-series SQLComing soon
Neo4jGraphComing soon
CassandraWide-columnComing soon
ScyllaDBWide-columnComing soon
CouchbaseDocument + key-valueComing soon
Apache DorisReal-time analyticsComing soon
Elasticsearch / OpenSearchSearch & indexingComing soon
darwadatabaseexplorer

Every object in the database, in the browser.

Not a metrics page with a connection string at the bottom. The full object tree, editable, with row counts and sizes where they matter.

SQL engines
Database
    Tables            browse · edit · truncate
    Views             definition · dependencies
    Materialized      refresh · last refreshed
    Indexes           size · usage · unused
    Functions         source · arguments
    Triggers          table · event · timing
    Sequences         current value · owner
    Extensions        install · version
    Users             roles · grants
MongoDB
Database
    Collections       documents · size · shape
    Documents         view · edit · validate
    Indexes           keys · usage · TTL
    Aggregations      pipeline builder · explain
    Users             roles · scoped access

Documents open in a JSON editor with schema shape inferred from a sample, so a collection with inconsistent fields is visible rather than surprising.

Schema browser

Columns, types, defaults, nullability, foreign keys, and what references this table.

Index manager

Create, drop, and rebuild — with size, scan counts, and a plain list of indexes nothing has used.

Users and grants

Create a read-only role for a reporting tool without opening a psql session.

darwadatabasequery editor

A query editor you would actually use.

Tabs, autocomplete on your real schema, history, saved queries, and exports. The editor at the top of this page is the product, not an illustration.

Autocomplete on your schemaTable and column names, joins suggested from foreign keys, functions with their signatures.
Multiple tabsKeep a migration draft, a debugging query, and a report open at once.
Query historyEvery statement you ran, with duration and row count, searchable — including the one you forgot to save.
Saved queriesName a query, share it with the team, run it against staging or production.
Export resultsCSV or JSON, straight from the result grid.
Guarded writesStatements without a WHERE clause ask for confirmation, and production requires an explicit toggle.
Execution plan, in words
Seq scan on line_items1,740 ms
4.1M rows read to return 128 · no usable index
Hash join · customers124 ms
Spilled to disk — work_mem too low for this join
Index scan on orders18 ms
orders_created_at_idx · already optimal
Proposed fix
CREATE INDEX CONCURRENTLY ON line_items(order_id);
p95 1.9 s → 96 msindex size 84 MBwrite cost +3%
Run nowSchedule for 02:00Show raw plan

The plan is summarised in language you can act on, with the raw plan one click away for when you want it.

darwadatabaseoperations

Backups you have actually tested.

Daily snapshots plus point-in-time recovery to any second in the retention window — and a restore that lands in a new instance, so you can verify it before you touch production.

Automatic backups

Daily, encrypted, in a window you choose. Retention runs from 7 to 35 days depending on the plan.

Point-in-time recovery

Rewind to any second within retention — the state just before a bad migration, not just last night.

Restore to a new instance

Recovery creates a separate database by default. Check it, then repoint your services.

Automatic minor upgrades

Patch versions applied in your maintenance window, with the changelog and a one-click deferral.

Health checks and alerts

Connection saturation, replication lag, disk pressure, and long transactions — alerted before they page you.

Storage autogrowth

Disk expands before it fills, and you are told what it cost rather than finding out on the invoice.

Point-in-time recovery · 2 Aug 2026
base02:00 snapshotwal12h 12m replayedtarget14:12:09now14:41 live
Restored tostorefront-restore-0802a new instance — production untouchedsafe
Verified1,204,882 orders · last row 14:12:08row counts checked against the target timematch
Divergence41 rows written after this pointexport them, or accept the loss knowinglyreview
Promote to primaryExport the 41 rowsDiscard restore
darwadatabasescaling

Grow the instance, add readers, survive a failure.

Vertical scaling on a rolling restart, read replicas where the engine supports them, and automatic failover with the connection string unchanged.

Vertical scalingMore CPU, memory, or disk applied in a maintenance window — typically under 60 seconds of failover.
Read replicasPostgreSQL, MySQL, MariaDB, and MongoDB. Point reporting and search at a replica, keep writes on the primary.
High availabilityA synchronous standby in another availability zone, promoted automatically when the primary fails.
Automatic failoverYour services keep the same host name; the pooler routes to the new primary.
Replication lag visibleLag per replica in seconds and bytes, alerted when a replica falls behind your threshold.
Topology · storefront
Primaryeu-central · 8 GB
41% CPU · accepts writes
Standbyeu-central-b · synchronous
lag 0 ms · auto-promote
Replica · reportingeu-west · async
lag 240 ms
Replica · read APIap-south · async
lag 1.1 s
failover automaticlast tested 12 Jul · 38 shost name unchanged on promote
darwadatabasesecurity

Private by default, public only if you insist.

A new database has no public endpoint. It is reachable over the private network by your own services, and nothing else.

ControlWhat it doesDefault
Private networkingReachable only from your services in the same regionOn
TLS connectionssslmode=require enforced, certificates managed and rotatedOn
IP allowlistsIf you do open a public endpoint, only listed addresses can reach itClosed
Role-based accessPer-role grants, with read-only roles created in two clicksOn
Secrets managementCredentials injected at runtime, rotated without a code changeOn
Audit trailWho connected, who ran DDL, who exported data, and whenOn
darwadatabaseassistant

Ask the database why it is slow.

The assistant reads your schema, your indexes, your query history, and the plans — so the answer names the table and hands you the DDL, rather than describing databases in general.

“why is my database slow?”3 causes
line_items(order_id) has no index62% of total time
4.1M row scans across 1,204 queries in the last hour
Connections 186 of 20040 ms queued
The pooler is holding requests before they reach the database
Autovacuum behind on orders18% dead tuples
Planner estimates drift as dead rows accumulate
Fix for the first cause
CREATE INDEX CONCURRENTLY ON line_items(order_id);
p95 1.9 s → 96 msdisk +84 MBlocks none — concurrent build
Run nowSchedule for the maintenance window
“Generate SQL for this table.”Describe what you want in a sentence and get a statement written against your actual columns.
“Optimize this query.”A rewritten version, the reason it is faster, and the measured difference on your data.
“Find missing indexes.”Ranked by time recoverable, with the write cost and disk cost of each one stated.
“Explain this execution plan.”The plan in plain language, with the specific step that dominates the runtime.
“What changed?”Schema and index changes correlated with the deploy and the latency shift that followed.
Guarded by defaultThe assistant proposes DDL; you run it. Nothing is applied to a database without an explicit action.
darwadatabasepricing

Priced per instance, and the free one does not expire.

Storage, backups, TLS, pooling, the explorer, the query editor, and the assistant are included in every size. You pay for memory, CPU, and disk.

PlanCPUMemoryStorageBackup retentionPer month
FreeNo expiryshared256 MB1 GB$0
Startershared1 GB10 GB7 days$7
Standarddedicated4 GB50 GB14 days$29
Standard+dedicated8 GB100 GB14 days$59
Performancededicated16 GB250 GB30 days$119
Performance+dedicated32 GB500 GB30 days$229
Customdedicated / HA64 GB +1 TB +35 daysTalk to us
Included
Explorer, query editor, assistant
on every plan, including free
Included
Backups and point-in-time recovery
storage for backups is not billed separately
Same price
Read replicas
a replica costs what its size costs — no premium
+40%
High availability
adds a synchronous standby in another zone
Redis / Valkey priced by memory onlyExtra storage $0.20 per GB per monthResize up or down at any time, billed per second
Get started

Create a database and open the editor.

The free instance has no expiry date, keeps its backups, and comes with the same explorer, editor, and assistant as production.

Create a databaseConnect it to a service