docs: add databases content#3018
Conversation
Add the docs, blog post, and changelog entry for the dedicated databases launch. Covers managed PostgreSQL, MySQL, MariaDB, and MongoDB engines on Appwrite Cloud, with high availability, point-in-time recovery, branching, extensions, a connection pooler, and a managed SQL API. * 11 docs pages under products/databases/dedicated (overview, specifications, connect, high-availability, backups, branches, extensions, pooler, sql-api, network, monitoring) wired into the databases sidebar. * Cross-link callout from the main databases overview to the new section. * Hide the "new TablesDB API" banner on the dedicated routes since it's scoped to the document store. * Announcement blog post with 8 FAQs. * Changelog entry for 2026-05-21. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Appwrite WebsiteProject ID: Website (appwrite/website)Project ID: Tip Sites auto-generate unique domains with the pattern https://randomstring.appwrite.network |
There was a problem hiding this comment.
Pull request overview
Launches the customer-facing documentation and announcement content for Appwrite Cloud Dedicated databases (managed PostgreSQL/MySQL/MariaDB/MongoDB), and wires the new docs section into the existing Databases documentation navigation.
Changes:
- Adds a new Dedicated databases docs section (overview + 10 feature pages) under
docs/products/databases/dedicated/. - Updates Databases docs landing + sidebar layout to surface Dedicated databases and hide the TablesDB “New API” banner on dedicated routes.
- Adds an announcement blog post and a changelog entry linking to the blog + docs.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/routes/docs/products/databases/dedicated/+page.markdoc | Adds Dedicated databases overview (engines, regions, feature cards, limits, billing). |
| src/routes/docs/products/databases/dedicated/specifications/+page.markdoc | Adds specs/pricing, free tier caps, overage/add-ons, resize behavior guidance. |
| src/routes/docs/products/databases/dedicated/connect/+page.markdoc | Documents credential retrieval, connecting via CLIs/drivers, password rotation, extra users. |
| src/routes/docs/products/databases/dedicated/high-availability/+page.markdoc | Documents HA modes, enabling HA, auto/manual failover behavior, limits. |
| src/routes/docs/products/databases/dedicated/backups/+page.markdoc | Documents backups, retention, PITR, restore/verify flows, encryption/storage targets. |
| src/routes/docs/products/databases/dedicated/branches/+page.markdoc | Documents branching from snapshots + CI preview workflow example. |
| src/routes/docs/products/databases/dedicated/extensions/+page.markdoc | Documents PostgreSQL extension management endpoints and limits. |
| src/routes/docs/products/databases/dedicated/pooler/+page.markdoc | Documents per-DB pooler config, modes, read/write splitting, sizing guidance. |
| src/routes/docs/products/databases/dedicated/sql-api/+page.markdoc | Documents SQL API enablement/config, execution, bindings, errors, audit behavior. |
| src/routes/docs/products/databases/dedicated/network/+page.markdoc | Documents hostname/TLS/IP allowlist/connection limits + security guidance. |
| src/routes/docs/products/databases/dedicated/monitoring/+page.markdoc | Documents metrics/usage/slow queries/explain/insights/audit/events endpoints. |
| src/routes/docs/products/databases/+page.markdoc | Adds callout linking users to Dedicated databases from the document-store landing page. |
| src/routes/docs/products/databases/+layout.svelte | Adds Dedicated databases section to the docs sidebar + hides TablesDB subtitle/banner on dedicated routes. |
| src/routes/blog/post/announcing-dedicated-databases/+page.markdoc | Adds announcement post (with FAQs) for Dedicated databases launch. |
| src/routes/changelog/(entries)/2026-05-21.markdoc | Adds changelog entry linking to announcement + docs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Greptile SummaryThis PR adds 11 new documentation pages for the Dedicated databases product, a blog announcement post, and a changelog entry, wiring everything into the existing sidebar with "New" badges.
Confidence Score: 4/5The new docs pages are mostly safe to publish, but several concrete defects in code examples remain unaddressed from earlier rounds — notably the Go nil-pointer panic users will hit when copying the connect snippet and the unexplained DATABASE_INTERNAL_ID placeholder that makes the monitoring curl examples non-functional as written. The Go snippet in connect/+page.markdoc discards the error from pgx.Connect and then unconditionally defers conn.Close on a potentially-nil receiver, which panics on any connection failure. The monitoring page uses two different ID placeholders without explaining what the internal ID is or how to obtain it, leaving both curl snippets non-functional. These were flagged in earlier rounds and are still present in the current head. src/routes/docs/products/databases/dedicated/connect/+page.markdoc (Go pgx nil-pointer panic), src/routes/docs/products/databases/dedicated/monitoring/+page.markdoc (DATABASE_INTERNAL_ID unexplained), src/routes/docs/products/databases/dedicated/branches/+page.markdoc (Frankfurt region hardcode), src/routes/changelog/(entries)/2026-05-21.markdoc (region-selector wording contradicts blog post FAQ) Important Files Changed
Reviews (11): Last reviewed commit: "docs: remove dedicated database legacy u..." | Re-trigger Greptile |
…onnect page `nodejs` is not a registered highlight.js language alias — only `server-nodejs` (which maps to `js`) works. The SSR pass blew up with "Unknown language: nodejs" on every request, so the page 500'd and the sidebar link looked like it did nothing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Switch '125m CPU' / '125 mCPU' / '125m – 16000m' to '0.125 vCPU' / '0.125 – 16 vCPU'. mCPU is a Kubernetes/internal unit; users think in fractional vCPUs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
50% per replica is not sustainable at the higher specifications — at $860/mo the underlying infrastructure cost per replica is close to the full spec price. Raising to 75% matches the cross-region replica rate and preserves margin on Business+ tiers. Applied to cloud config and tests in a separate change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
All replica-style add-ons (HA replicas, cross-region replicas, and the cross-region standby) now bill at 75% of the underlying specification. The standby is just a cross-region replica configured for automatic failover, so they price identically. Removes the separate "Cross-region standby" row from the add-on table and adds a one-liner explaining that the standby is a special-case cross-region replica. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The endpoint mutates an existing resource (the primary user's password), which is what PATCH is for. POST was the wrong verb. Updated the docs example to use PATCH. The same change ships in cloud (endpoint, e2e tests, internal docs). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace the bare CURL examples in the Connect page with multicode blocks covering all server SDKs (Node.js, Deno, PHP, Python, Ruby, .NET, Dart, Kotlin, Swift, Go, Rust) plus CURL as the last entry, matching the pattern used elsewhere in the docs and blog posts. SDK calls go through the Compute service since the endpoint lives at /v1/compute/... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…lover steps - Replace every em-dash with a comma in the new docs and blog post (12 files). - 'Appwrite's internal regional network' becomes 'the Appwrite network'. - Reduce the automatic-failover numbered list to a two-sentence summary. The engine-specific promote commands and per-step accounting belonged in the internal docs, not the user-facing page. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Convert every API curl example in the dedicated databases docs to a
{% multicode %} block. Server SDKs (Node.js, Deno, PHP, Python, Ruby,
.NET, Dart, Kotlin, Swift, Go, Rust) come first, with curl as the last
tab. ~32 endpoints converted across high-availability, backups,
branches, extensions, pooler, sql-api, network, and monitoring pages.
Mark cross-region failover and cross-region replicas as 'coming soon'
in the HA and specifications pages. Replace 'quiesce' on the branches
page with 'pause writes', since the term reads as jargon to anyone who
isn't a DB engineer.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The branches page had two adjacent identical {% multicode %} blocks
calling listDatabaseBranches. Drop the one in the 'Create a branch'
section in favour of a sentence that links to the canonical 'List
branches' section below.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
| cover: /images/blog/announcing-dedicated-databases/cover.avif | ||
| --- | ||
|
|
||
| Appwrite Cloud now supports [**Dedicated databases**](/docs/products/databases/dedicated), managed PostgreSQL, MySQL, MariaDB, and MongoDB engines running next to your existing Functions, Sites, and Storage. Pick an engine (Postgres 17/18, MySQL 8.0/8.4, MariaDB 10.11/11.4, MongoDB 7.0/8.0), pick a region (Frankfurt, New York, San Francisco, Singapore, Sydney, Toronto), pick a specification from `s-1vcpu-1gb` at $13/mo to `s-8vcpu-64gb` at $699/mo, and connect with `psql`, `mysql`, `mongosh`, or any standard driver. |
There was a problem hiding this comment.
"Pick a region" contradicts the blog post FAQ
The changelog entry tells readers they can "pick a region (Frankfurt, New York, San Francisco, Singapore, Sydney, Toronto)" when creating a dedicated database. The blog post FAQ in the same PR explicitly states the opposite: "there's no per-database region selector" and "A dedicated database lives in the same region as the project that owns it." A user who reads the changelog first will arrive at the Console expecting a region dropdown and be confused when one doesn't exist — or will open a support ticket asking why they can't move the database to a different region from their project. One of the two needs to align with the actual product behaviour.


Summary
Content for databases
products/databases/dedicated/: overview, specifications, connect, high-availability, backups, branches, extensions, pooler, sql-api, network, monitoring.