# Appwrite 2.0.0 - Product: Appwrite (https://whatsnew.fyi/product/appwrite) - Vendor: Appwrite - Date: 2026-09-04 - Version: 2.0.0 - Original notes: https://github.com/appwrite/appwrite/releases/tag/2.0.0 - Permalink: https://whatsnew.fyi/product/appwrite/releases/2.0.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Console IV with new navigation model, redesigned resource views, notifications and realtime event tail - **added** — Appwrite Terminal runs the Appwrite CLI inside the Console with session and project already configured - **added** — Appwrite Explorer loads project's OpenAPI specification, builds requests with guided forms and sends live calls from the browser - **added** — VectorsDB handles embeddings with fixed dimension collections, vector storage, optional metadata and HNSW index supporting cosine, dot product or Euclidean distance - **added** — DocumentsDB handles schemaless JSON documents with different fields per document and field additions as writes rather than migrations - **added** — Embeddings API turns text into vectors without a separate embedding service - **added** — Usage service for self-hosted instances with resource-scoped metrics for every product - **added** — Gitea and Origin VCS providers alongside GitHub, GitLab and Bitbucket - **added** — Self-hosted GitLab support through _APP_VCS_GITLAB_ENDPOINT and _APP_CONSOLE_GITLAB_ENDPOINT - **added** — Google sign-in to the console via _APP_CONSOLE_GOOGLE_APP_ID and _APP_CONSOLE_GOOGLE_SECRET - **added** — Cloudflare Dashboard and Resend join the OAuth2 provider list - **added** — Custom MFA challenge factor plus gravatar and OAuth2 avatar support - **added** — Geo service and new health check endpoint - **added** — Execution logs can dual-write to ClickHouse with _APP_EXECUTIONS_DUAL_WRITE, _APP_CONNECTIONS_DB_EXECUTIONS and _APP_POOL_SIZE_EXECUTIONS - **added** — _APP_OPTIONS_ABUSE_INCREASED_LIMIT_PROJECTS raises rate limits for named projects - **changed** — PostgreSQL is the default database for new installs with durability left on - **changed** — Git installations are isolated per project with installation endpoints scoped to owning project and signed GitHub App installation state - **changed** — Sites build on the orchestrator backend with framework detection from config files - **changed** — Realtime is cheaper per event with one Swoole worker, document encoded once per event instead of once per subscriber, and presence stored as flags - **fixed** — Index listing looked up by collection id instead of sequence, preventing collections sharing an id across databases from seeing each other's indexes - **fixed** — Transactions reject array queries up front instead of throwing on commit - **fixed** — Integer attribute min and max are capped to what the column can hold - **fixed** — teams.total matches confirmed memberships across all four paths that could drift it - **fixed** — Buckets are no longer left half-created when their files collection fails - **fixed** — Build billing is skipped when the build never started, capped at the build timeout and tagged with the resource id - **fixed** — Proxy rule domains are stored lowercase so lookups match however a domain was entered - **fixed** — SVG files are served as attachments from the file view endpoint - **removed** — GET /v1/health/executions endpoint ![Announcing Appwrite 2.0](https://github.com/appwrite/appwrite/releases/download/2.0.0/cover.png) Appwrite 2.0 is the second major generation of the platform. It replaces the engine underneath, rebuilds the Console on top, and expands what a project can hold: relational, schemaless and vector data, on PostgreSQL, MariaDB or MongoDB, with the same permissions, queries and realtime you already use. Read the full story in the [announcement post](https://appwrite.io/blog/post/announcing-appwrite-2). Existing projects keep working. Upgrading from 1.9.x is a single command and a migration, and your data stays on the database engine it is on today. ##### Highlights - **Console IV.** The next-generation Appwrite Console, rebuilt from the ground up with a new navigation model, redesigned resource views, notifications and a realtime event tail. Two developer tools now count as part of the default workflow: **Appwrite Terminal** runs the Appwrite CLI inside the Console with your session and project already configured, and **Appwrite Explorer** loads your project's OpenAPI specification, builds requests with guided forms and sends live calls from the browser. - **PostgreSQL is the default database.** New installs provision PostgreSQL out of the box, with durability left on. MariaDB and MongoDB remain fully supported for new and existing installs. - **VectorsDB handles embeddings.** A collection is created with a fixed dimension, every document stores a vector of that length plus optional metadata, and an HNSW index keeps similarity search fast as the collection grows. Choose cosine, dot product or Euclidean distance. - **DocumentsDB handles schemaless documents.** A collection holds JSON, two documents in the same collection can have different fields, and adding a field is a write rather than a migration. Document-level permissions, queries, ordering and pagination work through the same SDK patterns. VectorsDB and DocumentsDB need PostgreSQL and MongoDB engines a stock install does not deploy, so they ship off; enable `_APP_VECTORSDB` or `_APP_DOCUMENTSDB` once the engine is provisioned. - **Embeddings API** turns text into vectors without a separate embedding service in your stack. The embedding container is resource heavy and off by default; add `embedding` to `COMPOSE_PROFILES` and set `_APP_EMBEDDING=enabled` to run it. - **Usage service** for self-hosted instances, with resource-scoped metrics for every product. - **Gitea and Origin VCS providers**, alongside GitHub, GitLab and Bitbucket. Self-hosted GitLab works through `_APP_VCS_GITLAB_ENDPOINT` and `_APP_CONSOLE_GITLAB_ENDPOINT`. - **Git installations are isolated per project.** Installation endpoints are scoped to the owning project and the GitHub App installation state is signed, so a callback cannot be replayed onto someone else's project. Failed callbacks redirect back to the console with an actionable error instead of dead-ending. - **Sites build on the orchestrator backend**, with framework detection from config files. - **Builds survive non-local storage.** With `_APP_STORAGE_DEVICE` set to an S3-compatible backend, build output is uploaded there and a failed upload fails the build. - **Google sign-in to the console**, via `_APP_CONSOLE_GOOGLE_APP_ID` and `_APP_CONSOLE_GOOGLE_SECRET`. Cloudflare Dashboard and Resend join the OAuth2 provider list. - **Custom MFA challenge factor**, plus gravatar and OAuth2 avatar support. - **Geo service** and a new health check endpoint. - **Realtime is cheaper per event.** One Swoole worker, the document encoded once per event instead of once per subscriber, presence stored as flags. - **Execution logs can dual-write to ClickHouse.** Off by default, reads stay on the project database and mirror failures are never fatal. `_APP_EXECUTIONS_DUAL_WRITE`, `_APP_CONNECTIONS_DB_EXECUTIONS`, `_APP_POOL_SIZE_EXECUTIONS`. - **`_APP_OPTIONS_ABUSE_INCREASED_LIMIT_PROJECTS`** raises rate limits for named projects. ##### Installer and upgrade - ** _[Truncated at 4000 characters — full notes: https://github.com/appwrite/appwrite/releases/tag/2.0.0]_