Skip to content

Changelog

  • Flutter 3.41 and Dart 3.11 are now available on Appwrite Cloud

    Appwrite Cloud now supports Flutter 3.41 and Dart 3.11 runtimes.

    You can now select Flutter 3.41 when deploying Sites and Dart 3.11 when deploying Functions.

    These runtime upgrades include the latest stable improvements from the Flutter and Dart ecosystems, including language and tooling updates, performance optimizations, and ongoing platform compatibility improvements.

  • MongoDB support for self-hosted Appwrite

    Appwrite now supports MongoDB as a database for self-hosted installations. Starting with Appwrite 1.9.0, you can choose between MongoDB and MariaDB when setting up your instance. MongoDB is the new default.

    The new web-based installation wizard walks you through the setup, including database selection, in just a few steps. Your Appwrite API stays the same regardless of which database you pick; only the underlying database changes.

    Read the announcement

  • Security update: Axios npm incident

    We have reviewed Appwrite's production repositories, SDKs, and tooling chain following the recent Axios npm supply chain incident, and confirmed that Appwrite SDKs and tooling were not impacted by the compromised Axios releases.

    Our JavaScript and TypeScript SDKs use native platform APIs such as fetch rather than Axios. While no direct exposure was found in Appwrite deliverables, we still added extra safeguards to our TypeScript SDK workflow, including stronger lockfile handling, stricter CI install behavior, and improved dependency visibility during release review.

    Read the full security update

  • Appwrite Cloud: Realtime usage limits and billing enforcement

    Starting April 30, 2026, we will begin actively enforcing Realtime usage limits and billing on Appwrite Cloud.

    Since launching Appwrite Cloud in beta, we have not actively enforced Cloud limits for Realtime. We are now transitioning to full enforcement so that usage is measured and billed according to your plan. This change ensures fair usage across the platform and allows us to continue investing in Realtime and the rest of the Cloud offering.

    Realtime limits:

    • Messages: Free plan includes 2M messages/month; Pro include 6M messages/month. Additional messages are billed at $2.50 per 1M.
    • Concurrent connections: Free 250, Pro 500. Additional connections are $5 per 1,000.
    • Max message size: 256 KB on Free; 3 MB on Pro.

    Bandwidth consumed by the Realtime service also counts toward your plan’s general bandwidth allowance—the same pool used by your other Appwrite Cloud traffic (for example, API and Storage). See your plan’s bandwidth limits on the pricing page.

    You can view your current Realtime usage in the billing usage breakdown in the Appwrite Cloud console. Full details and plan comparison are on our pricing page.

    To improve performance and reduce costs, we recommend using Realtime queries to filter events server-side so your app receives only the updates it needs. Fewer messages mean lower usage and a better experience for your users.

    View pricing and limits

    Reduce messages with Realtime queries

  • Introducing Appwrite Arena

    Appwrite Arena is now live: an open-source benchmark for evaluating how well AI models understand and generate Appwrite code.

    Arena includes 191 questions across 9 Appwrite service categories and evaluates models in two modes: with and without Appwrite Skills.

    Scoring combines deterministic multiple-choice evaluation with AI-judged open-ended answers, giving a balanced view of both factual accuracy and real-world reasoning.

    Read the announcement

    View Arena documentation

  • User impersonation for Appwrite Auth

    Trusted operators can now impersonate users in Appwrite Auth to reproduce issues, validate permissions, and provide hands-on support without sharing credentials.

    This release adds a new impersonator capability on users, available from the Appwrite Console and the Users API, plus direct SDK support for targeting a user by ID, email, or phone.

    Impersonated requests still begin from a real authenticated user session, and internal audit logs continue to attribute actions to the original impersonator while recording the impersonated target in internal audit payload data.

    Read the announcement to learn more

  • Introducing Appwrite Skills

    Appwrite Skills are open-source Markdown files that give AI coding agents deep, language-specific knowledge of Appwrite SDKs. Install skills into your project, and your AI tools generate correct Appwrite code automatically, no more pasting docs into prompts.

    Skills are available for the Appwrite CLI and all major SDKs, including TypeScript, Dart, .NET, Go, Kotlin, PHP, Python, Ruby, and Swift. They work with Claude Code, Cursor, Windsurf, and other compatible agents.

    Get started with one command:

    Bash
    npx skills add appwrite/agent-skills
    

    Read the announcement to learn more

  • CNAME flattening support for Appwrite Sites

    You can now connect a custom domain to Appwrite Sites without changing your nameservers. Appwrite Sites now supports CNAME flattening and similar apex-domain features provided by modern DNS providers.

    Instead of migrating nameservers to Appwrite, you can add a DNS record with your existing provider, verify the domain in the Console, and go live. This works with CNAME flattening (Cloudflare), ALIAS records (Route 53), and ANAME records, depending on your provider.

    Read the announcement

  • Edge runtimes just got more resilient

    We've rolled out infrastructure improvements to strengthen runtime stability across regions, including NYC, after identifying DNS-related instability under load.

    What's improved:

    • DNS resilience under network partitions
    • More powerful instance types and tuning of runtime resource allocations improve performance alongside noisy neighbours
    • Improvements to runtime monitoring and alerting

    These changes reduce DNS-related latency, improve cold start reliability, and minimize blast radius during node-level issues.

  • SMS rates updated to match upstream providers

    SMS pricing for Phone OTP has been updated to reflect current rates from our upstream providers. We continuously work with our vendors to ensure the best availability and local delivery for OTP messages worldwide. Per-country rates have been adjusted across the board so that our documentation and billing stay in sync with carrier and provider changes—some destinations saw rate decreases, others increases, and the pricing table has been reorganized for clarity.

    See the Phone OTP documentation for the full per-country SMS pricing table.

  • Free plan update: Automatic pausing of inactive projects

    To reduce idle infrastructure costs and keep the Free plan sustainable at scale, projects on the Free plan with no development activity for 7 consecutive days will be automatically paused.

    What "paused" means

    • Data is not deleted
    • The project is not accessible to users while paused
    • No background processes run (backups, cron jobs, scheduled functions)
    • Projects can be reactivated anytime from the Appwrite Console and become active immediately

    Why this change
    Running cloud infrastructure incurs ongoing costs, even for inactive projects. Automatically pausing idle projects ensures resources are prioritized for developers actively building, while keeping the Free plan sustainable long term.

    Important
    Projects that require continuous availability should be on a paid plan. Free plan projects remain active as long as they show development activity in the Console. We will continue evolving the Free plan to keep it generous, sustainable, and aligned with active builders.

  • DNS: TXT record encoding and truncation handling

    Two fixes are now live for DNS used by custom domains and network features.

    TXT records: TXT records now support payloads longer than 255 bytes by using chunked encoding (splitting into 255-byte chunks per RFC 1035), and empty TXT rdata is encoded as a single zero-length character-string so encoding and decoding stay correct.

    Response truncation: When a response is truncated and the authority section is dropped to fit size limits, NODATA (NOERROR with no answers) and NXDOMAIN responses are now marked non-authoritative so they remain valid and pass validation.

    Now live on Appwrite Cloud.

  • Advanced filtering across the Console

    Debugging and monitoring just got easier. The Appwrite Console now supports advanced filtering for function executions, site logs, and deployments.

    Filter by status, trigger type, HTTP method, response status code, duration, request path, or time range, and combine multiple filters to quickly find exactly what you need.

    For example, surface all failed function executions from the last hour, or find slow site requests exceeding 5 seconds.

    Now live on Appwrite Cloud.

  • Realtime queries: Server-side event filtering for subscriptions

    Appwrite Realtime now supports passing SDK queries when subscribing to channels. Events are filtered server-side based on your queries, so your callbacks only receive updates that match your conditions.

    You can use queries like Query.equal(), Query.notEqual(), Query.greaterThan(), and more, and combine them with Query.and() and Query.or() for precise filtering. You can also subscribe to the same channel multiple times with different filters to handle different subsets of events independently.

    Available across all Appwrite client SDKs: Web, Flutter, Apple, and Android.

    Now live on Appwrite Cloud.

    Read the announcement to learn more

  • Realtime Channel helpers: Type-safe subscriptions made simple

    Appwrite Realtime now includes Channel helpers, a fluent, type-safe API for building channel subscriptions. Instead of manually writing channel strings, you use the Channel class with IDE autocomplete and compile-time validation.

    Channel helpers support all available channels, event type filtering with .create(), .update(), and .delete(), and flexible wildcards by omitting IDs. Existing string-based subscriptions continue to work.

    Available across all Appwrite client SDKs: Web, Flutter, Apple, and Android.

    Now live on Appwrite Cloud.

    Read the announcement to learn more

  • New string column types for Appwrite Databases

    Appwrite Databases now supports four explicit string column types - varchar, text, mediumtext, and longtext - giving you transparent control over storage behavior and indexing.

    Each type has defined limits and indexing strategies suited to different use cases, from short identifiers to large content. The legacy string type remains supported for backward compatibility.

    Now live on Appwrite Cloud.

    Read the announcement to learn more

  • Generate a type-safe SDK from your schema with the Appwrite CLI

    The Appwrite CLI now includes a generate command that creates a type-safe, project-aware SDK directly from your database schema. The generated SDK includes typed helpers with autocomplete for querying and mutating rows, eliminating boilerplate and turning schema-related runtime bugs into type errors.

    Run appwrite generate in your project directory to get started.

    Now live on Appwrite Cloud.

    Read the announcement to learn more

  • Relationship queries and up to 18x faster relationship performance

    Appwrite Databases now supports filter queries directly on relationship columns using dot notation. Query across related data with operators like equal, notEqual, greaterThan, lessThan, between, and more, without needing to fetch and filter application-side.

    Additionally, all relationship operations are now 12-18x faster across the board, with no configuration changes needed.

    Now live on Appwrite Cloud.

    Read the announcement to learn more

  • Announcing CSV exports: Effortless data extraction, right from your Console

    Appwrite now supports exporting data to CSV directly from the Console. This feature simplifies data extraction and reporting without requiring SDKs or custom scripts.

    What's new

    CSV export introduces a new option in the Appwrite Console for downloading CSV files from your database tables.

    That means, you can:

    • Apply filters or queries before export.
    • Choose specific attributes (columns) to include.
    • Set a custom delimiter and optional header row.
    • Run exports asynchronously in the background.
    • Receive email notifications with a short-lived download link once the export completes.
    • Export relationship fields as IDs by default.

    Immediate benefits:

    • Enables data export without SDKs or scripts.
    • Customizable exports with query filters and column selection.
    • Non-blocking execution via background jobs.
    • Secure: Exports respect Appwrite's document permissions.
    • Supports standard CSV formatting options (delimiter, headers, filenames).

    Now live on Appwrite Cloud.

    Read the announcement to learn more

  • GraphQL schema is now public

    You can now run introspection queries on Appwrite's GraphQL API. With introspection enabled, you get:

    • IDE autocomplete for queries, mutations, and fields
    • Schema exploration using tools like GraphQL Playground, Insomnia, or Postman
    • Type generation for strongly-typed clients in your preferred language

    Here's how to fetch the schema using the Appwrite SDK:

    Web
    import { Client, Graphql } from "appwrite";
    
    const client = new Client()
        .setEndpoint('https://<REGION>.cloud.appwrite.io/v1')
        .setProject('<PROJECT_ID>');
    
    const graphql = new Graphql(client);
    
    const schema = await graphql.query({
        query: `{
            __schema {
                types { name }
                queryType { fields { name } }
                mutationType { fields { name } }
            }
        }`
    });
    
    console.log(schema.data);
    

    Learn more about Appwrite's GraphQL API

  • Announcing Screenshots API: Generate pixel-perfect webpage screenshots on demand

    We're excited to announce the Screenshots API, a new addition to Appwrite Avatars that lets you generate fully customizable webpage screenshots with a single API call.

    No more headless browser infrastructure to maintain. No more environment-specific workarounds. Just simple, reliable screenshot generation.

    What you can do

    • Capture any public webpage as an image
    • Simulate an authenticated experience via custom request headers
    • Control browser viewport size and device scale
    • Render in light or dark theme
    • Simulate different locales, timezones, and geolocation
    • Pre-grant browser permissions
    • Generate full-page or viewport-only screenshots
    • Customize output format, dimensions, and quality

    The Screenshots API is available today as part of Appwrite Avatars and is already being used in production by Imagine.

    Get started with Screenshots API

  • Free plan function limit reduced to 2

    Starting today, the Free plan now allows a maximum of two functions per project, reduced from the previous limit of five.

    What does this mean for developers on the Free plan?

    If you currently have more than two functions in your project on the Free plan, you'll continue to have full access to all of them for now. However, you won't be able to create new functions until you reduce the count or upgrade to a paid plan.

    Why this change?

    We've observed increasing abuse on the platform, including users running torrents, long-lived traffic that resembles attacks, and other misuse of the platform as free hosting for non-stop jobs. By reducing the number of free functions, we're making it harder for bad actors to exploit the platform while keeping Appwrite stable and fair for developers building legitimate applications.

    Appwrite's Free plan continues to provide all the core building blocks you need to build real applications, including Databases, Authentication, Storage, Functions, Messaging, and Sites.

    If you have questions or need help planning your migration, please contact us at billing@appwrite.io.

    Learn more about Appwrite Functions

  • Announcing Appwrite 1.8.1 for self-hosted deployments

    After multiple updates and fixes, we have now released Appwrite 1.8.1 for self-hosting!

    Most notably, this release includes:

    • Added branch-only deployments support
    • Added TanStack Start sites support
    • Added Next.js standalone support
    • Added Resend integration
    • Added option to enable/disable image transformations per-bucket
    • Added operators support
    • Added function and sites stats
    • Added disable count feature
    • Added ElevenLabs site template
    • Added suggested environment variables
    • Updated GeoDB database
    • Updated Flutter default build runtime
    • Upgraded runtimes

    Head over to our migration guide to learn how you can upgrade your Appwrite instance. Please run the migrate command even if upgrading from 1.8.0.

    For the complete list of updates and fixes, check out the release notes on GitHub.

    Upgrade your self-hosted instance

  • Announcing Full Schema Creation: Provision complete tables in one atomic call

    Introducing a new Database feature called Full Schema Creation.

    With Full Schema Creation, you can define an entire table, its attributes and indexes, in a single, synchronous request. When the call returns, the table is immediately ready for reads and writes. If anything fails along the way, nothing is created. No partial schemas. No waiting. No brittle setup scripts.

    Read the full announcement

  • Fixed file token URL consistency for non-expiring tokens

    File tokens allow you to generate custom URLs for accessing files in Storage buckets.

    We've fixed two issues with non-expiring file tokens:

    • Unexpected expiration: Non-expiring tokens were incorrectly expiring after 15 minutes, despite being configured to never expire.
    • Inconsistent URLs: Each request generated a different URL for the same non-expiring token, breaking caching and causing unnecessary revalidation.

    With this fix:

    • Non-expiring file tokens now generate consistent URLs across all requests.
    • URLs remain valid indefinitely as intended.
    • Improved reliability for long-term file sharing and caching strategies.

    This update is now live on Appwrite Cloud.

    Join the conversation on Discord

  • Database AI suggestions

    This release introduces AI-assisted schema generation to simplify database schema creation.

    What’s new:

    • Added Database AI suggestions in the Console
    • Automatic column and index suggestions based on table name and context
    • Added sample data generation when creating a new table, allowing you to quickly populate example records that match the schema
    • Example: Creating a table called Orders suggests columns orderId, userId, totalAmount, and status

    Benefits:

    • Faster setup: Define schemas in seconds instead of manually creating each column
    • Consistency: Field names and types aligned across tables
    • Best practices: Suggested indexes and common fields included by default
    • Flexibility: Suggestions can be reviewed, modified, or skipped before applying

    This update is available now on the Appwrite Console.

    Read the announcement to learn more

  • You can now disable image transformations for buckets

    You can now disable image transformations for any storage bucket.

    Image transformations allow actions like resizing, cropping, and format conversion through the Appwrite Storage API. With this update, you have full control to turn off these operations when they're not needed, reducing the chance of unintentional processing or costs.

    This update is useful if you:

    • Want to avoid unexpected transformation charges.
    • Need to restrict buckets to serve only original files.
    • Want greater control over how images are accessed and displayed.

    You can find the toggle in your bucket settings under Image transformations.

    Join the conversation on Discord

  • Skip total counts for faster list queries

    You can now skip totals with a simple total=false flag and get faster, lighter list responses without the extra database work.

    What’s new

    • Added a new request flag: total=false on all list* endpoints
    • When enabled, Appwrite skips the COUNT query entirely
    • Response includes total: 0 while still returning items normally
    • Fully backwards-compatible: default behaviour remains unchanged
    • Works best with cursor-based pagination
    • Applies consistently across all list-like API calls

    Immediate benefits

    • Faster API responses for large and filtered result sets
    • Lower database and CPU load, improving stability under heavy read traffic
    • Better UX for infinite scroll and mobile clients that don’t rely on totals
    • Reduced cloud infrastructure cost by avoiding unnecessary COUNT operations

    This feature is now live on both Appwrite Cloud and Self-hosted instances

    Learn more from the documentation

  • Announcing DB operators: Update multiple fields without fetching the entire row

    Updating just one field in a row, like incrementing a counter or adding a tag, used to require reading and rewriting the entire document. This added latency, wasted bandwidth, and created risks of lost updates under high concurrency.

    What’s new:

    • Introduced DB Operators v1, enabling inline, atomic field-level updates.
    • Support for numeric, array, string, and date operations.
    • Perform multiple field updates in a single atomic call.
    • Type-safe SDK methods for clarity and safety.
    • Transaction-ready, can be combined with other database operations.

    Immediate benefits

    • Always consistent. No race conditions or lost updates.
    • Lower latency and bandwidth usage.
    • Cleaner, more expressive code. One call, clear intent.
    • Composable updates across multiple fields.

    Live now on Appwrite Cloud. Coming soon to self-hosted deployments.

    Read the announcement to learn more

  • Next.js 16 Support (Server-Side Rendering)

    Appwrite Sites now fully supports Next.js 16, including Server-Side Rendering (SSR) and the latest framework improvements such as Cache Components, Turbopack, and refined caching APIs.

    You can deploy applications built with Next.js 16 directly on Appwrite Sites with zero configuration changes.

    Highlights:

    • Full SSR compatibility with Next.js 16.
    • Built-in support for static, dynamic, and hybrid rendering modes.
    • Optimized deployment flow using Turbopack for faster build times.

    This update ensures seamless deployment and improved performance for all projects using the latest Next.js release.

    Deploy a Next.js app to Appwrite Sites

  • Appwrite Sites now offers unlimited sites on the free plan

    When we launched Appwrite Sites in early access, our goal was clear: make deploying modern web projects as easy and integrated as building them. From the start, we intended for developers to have full flexibility, to deploy, test, and scale without limits.

    But before opening things up, we needed to ensure that the platform was stable, fast, and reliable for everyone. That’s why, during the initial rollout, we limited Sites to one per project. This gave us the room to validate performance, harden our infrastructure, and refine the developer experience.

    Now that Appwrite Sites has matured, it’s time to lift that constraint. On the free plan, you can deploy unlimited sites per project.

    Read the announcement

  • New Cloud regions announced: Singapore and Toronto

    We’ve expanded the Appwrite Cloud to two brand-new regions!

    Starting today, the Singapore (SGP) and Toronto (TOR) regions are live and ready for your projects.

    This means you can: Create new projects directly in the regions SGP or TOR.

    Or migrate your existing projects to take advantage of these new locations.

    If your users are based in Southeast Asia, the Singapore region will help you deliver a faster and more reliable experience. If your users are in Canada or the U.S. Northeast, the Toronto region will help you do the same, closer to where your users are.

    Learn more about regions

  • Appwrite Sites now supports TanStack Start

    TanStack Start is quickly becoming the go-to framework for developers who want simplicity, type safety, and performance without the overhead.

    And now, Appwrite Sites brings full Server-Side Rendering (SSR) support for TanStack Start, making it easier to build, run, and deploy modern React and Solid apps on Appwrite Cloud.

    What’s new

    • Full SSR support for TanStack Start: Deploy TanStack Start apps directly on Appwrite Cloud with zero configuration.
    • Native Cloud support: Everything works out of the box on Appwrite Cloud, no additional setup required.

    It’s now available on Appwrite Cloud.

    Read the announcement to learn more

  • Email verification for Cloud accounts

    Email verification is now required for all new and existing accounts on Appwrite Cloud.

    As a new user, if you create your account using an email and password, you will be prompted to verify your email address during the signup process.

    As an existing user, if you have not yet verified your email address, you will be prompted to verify your email address the next time you access the Appwrite Console.

    If you have any questions or need assistance, please create a support post on Discord.

    Open Discord

  • Self-hosted Appwrite 1.8.0 is now available

    Self-hosted Appwrite 1.8.0 is now available, bringing a host of new features, improvements, and bug fixes to enhance your experience.

    Some of the key highlights include:

    • Added Flutter 3.32 and Dart 3.8 runtimes
    • Added increment + decrement routes
    • Added support for React Native schemes
    • Updated origin validation for web extensions
    • Added CSV imports
    • Added realtime support for the Bulk API
    • Added native sign in with Apple function template
    • Added TablesDB service
    • Added spatial type attributes
    • Added support for transactions
    • Updated SMTP Messaging emails to send using BCC

    Refer to the release notes for the full list of changes.

    Upgrade your self-hosted instance

  • Announcing Transactions API: Reliable multi-record writes across tables

    Handling multi-step workflows across tables often means dealing with partial writes and manual rollback logic.

    With the new Transactions API, you can now execute multiple operations as a single atomic action, either all succeed or none do.

    What's new:

    • New Transactions API for managing multi-step writes
    • Support for staging multiple create, update, and delete operations across tables
    • Atomic commit and automatic rollback on failure
    • Configurable timeout for idle transactions (default: 5 minutes)

    Benefits:

    • ACID compliance: Ensures atomicity, consistency, isolation, and durability across all staged operations.
    • All-or-nothing writes: Prevents partial data states and inconsistent records.
    • Automatic rollback: Appwrite handles cleanup on failure, no manual scripts required.
    • Reduced race conditions: All operations are validated and committed together.
    • Simplified logic: Consolidate multi-table operations without adding client-side complexity.

    This update is live on Appwrite Cloud.

    Read the announcement to learn more

  • Performance improvements for Functions and static sites

    We've shipped major performance improvements across functions and static sites.

    Function cold starts are now 58% faster in the Frankfurt (FRA) region with more consistent start times across executions.

    Static sites are now served directly through our edge proxies, eliminating the need for dedicated runtimes. This means:

    • No more cold starts for static sites
    • Automatic caching for all static site assets
    • Over 99% of requests served locally from 120+ global PoPs

    These improvements are now live on Appwrite Cloud. Please don't hesitate to share your experience and feedback with us.

    Join the discussion on Discord

  • Announcing API for spatial columns: Build scalable location-aware apps with ease

    Working with geo data usually means storing raw coordinates and writing custom logic that slows down as your dataset grows.

    But now, you can build scalable geo workflows right out of the box.

    What's new:

    • New column types: Point, Line and Polygon
    • New index type: Spatial
    • 12 new geo query operators: crosses, notCrosses, distanceEqual, distanceNotEqual and more.

    Benefits:

    • Native support for geo logic: Handle geofencing, routing, and compliance zones without custom hacks.
    • Scales with your data: Spatial indexes keep queries fast even with a large volume of records.
    • Simpler development: Reduce app-side complexity by keeping geo operations inside the database.

    This update is live on Appwrite Cloud.

    Read the announcement to learn more

  • Announcing Turbopack support for Appwrite Sites

    Appwrite Sites now supports Next.js applications built with Turbopack, with faster builds and better compatibility for your deployments.

    What's new

    • Turbopack support: Deploy Next.js SSR sites using Turbopack bundler for faster builds
    • Better Next.js compatibility: Developers no longer need to disable Turbopack in build commands

    Benefits

    • Faster builds: Turbopack is faster than webpack
    • Better developer experience: No build configuration changes needed when deploying applications that use Turbopack

    This update is live for all Appwrite Cloud users. Self-hosted support will come in an upcoming release.

    Learn more in the announcement post

  • Introducing the Appwrite MCP server for docs

    While the Appwrite docs are constantly getting updated and improved, LLMs often struggle to provide accurate and up-to-date information due to missing context.

    Appwrite's new MCP server for docs solves this problem by enabling AI assistants to access and search through Appwrite's documentation directly.

    With this MCP server, AI assistants can:

    • Search through Appwrite documentation
    • Retrieve specific guides and references
    • Generate code snippets using the latest APIs
    • Provide contextual help for Appwrite features

    This makes it easier for developers to get instant, accurate answers about Appwrite directly from their AI development environment.

    Learn more in the documentation

  • Announcing inversion queries: Exclusion rules made simple

    Excluding data often meant fetching too much and then filtering it out in your app, which wasted reads and added extra logic.

    To make those exclusions simpler and more efficient, we’ve added inversion queries:

    • notSearch
    • notContains
    • notBetween
    • notStartsWith
    • notEndsWith

    With these, you can express “everything except …” rules directly in your queries, keeping them cleaner, reducing wasted reads, and cutting down on payload sizes.

    Now live on Appwrite Cloud + Self-hosted.

    Read the announcement to learn more

  • Announcing time helper queries: Cleaner, more expressive time-based queries

    A new set of database queries, time helper queries, is now live.

    Filtering by time is one of the most common patterns in real-world apps. Until now, this often meant adding extra conditions that made your queries longer and harder to read.

    With time helper queries, you can now handle time-based filtering in a simple and expressive way. You’ll find four new options:

    • createdBefore: Find rows created before a given date
    • createdAfter: Find rows created after a given date
    • updatedBefore: Find rows updated before a given date
    • updatedAfter: Find rows updated after a given date

    That means you can:

    • Reduce boilerplate in your code
    • Write cleaner, more readable queries
    • Make time-based filtering faster and easier to manage

    Available now on Appwrite Cloud and Self-hosted.

    Read the announcement to learn more

  • JavaScript SDKs now use object arguments

    We've updated the Appwrite JavaScript SDKs to support object-based arguments instead of positional ones.

    This change makes SDK calls easier to read, less error-prone, and more maintainable.

    Before (positional arguments):

    JavaScript
    const result = storage.getFilePreview(
      '<BUCKET_ID>',
      '<FILE_ID>',
      undefined, // width
      undefined, // height
      ImageGravity.Center,
      undefined, // quality
      undefined, // borderWidth
      undefined, // borderColor
      undefined, // borderRadius
      undefined, // opacity
      undefined, // rotation
      undefined, // background
      ImageFormat.Jpg,
      '<TOKEN>'
    );
    // Required passing undefined for unused optional parameters
    

    After (object arguments):

    JavaScript
    const result = storage.getFilePreview({
      bucketId: '<BUCKET_ID>',
      fileId: '<FILE_ID>',
      gravity: ImageGravity.Center,
      output: ImageFormat.Jpg,
      token: '<TOKEN>'
    });
    // No more undefined values needed!
    
    What about existing code?

    Positional arguments still work, but they've been marked as deprecated. Your IDE will show warnings, and you can migrate over time.

    This update is now available in the following SDK versions:

    Join the discussion on Discord

  • Appwrite's new pricing goes into effect

    Starting today, September 1st, 2025, the following pricing changes will go into effect:

    • The base price for Pro will go from $15 to $25 per month
    • The per-seat pricing model is moving to a per-project pricing model
    • Resources will be per project instead of per organization, and we will be giving you more resources per project
    • The bandwidth resources on Pro and Scale go from 300GB to 2TB per month per project
    • The additional bandwidth price goes from $40 per 100GB to $15 per 100GB
    • The price for GB hours goes from $0.09 per GB hour to $0.06 per GB hour
    • The additional storage price goes from $3 per 100GB to $2.8 per 100GB
    • Appwrite Messaging and Sites now have resource limits on Free, Pro, and Scale plans

    Read the announcement to learn more

  • Email verification for Cloud accounts

    Appwrite Cloud will soon require email verification to enhance account authenticity. When we first launched the beta, we focused on streamlining onboarding by skipping this step, but as the platform grows, we’re committed to strengthening security and trust for all users.

    This change is aimed at:

    1. ensuring everyone has a valid email address for billing or support inquiries
    2. enhancing the overall security of our platform
    3. reducing the risk of spam or fraudulent accounts

    In preparation for this change, we encourage you and your team members to verify that your email addresses are correct and working so that you can complete the verification process when email verification becomes required.

    Check your account email

  • Announcing Opt-in relationship loading: Granular control for smarter data fetching

    Announcing Opt-in relationship loading for Appwrite Databases.

    Before this feature, database queries automatically included related documents. This often caused large JSON payloads, higher latency, and wasted bandwidth.

    With Opt-in relationship loading, you now choose exactly which related documents to include, resulting in smaller payloads and faster queries.

    This added control over data fetching helps you deliver faster, more efficient applications.

    Read the announcement to learn more

  • New Cloud region available: San Francisco (SFO)

    We’ve expanded the Appwrite Cloud to a brand-new region.

    Starting today, the San Francisco (SFO) region is now live and ready for your projects.

    This means you can:

    • Create new projects directly in SFO
    • Or migrate your existing projects to take advantage of the new location

    If your users are on the U.S. West Coast, the SFO region will help you deliver a faster and reliable experience to your users.

    Learn more about Regions

  • Announcing new TablesDB UI: A spreadsheet-like way to manage your data

    We’re excited to introduce a completely new TablesDB UI for Appwrite Databases

    Experience a spreadsheet‑like editing workflow, right inside the Console.

    You can now:

    • Edit records inline
    • Perform bulk actions
    • Navigate with arrow keys and shortcuts

    A faster way to patch production, clean up test data, and stay in flow.

    Read the announcement to learn more

  • Introducing the TablesDB API with updated terminology

    Announcing significant updates to Appwrite Databases!

    Appwrite Databases is now transitioning to a more familiar relational model, moving away from the documents and collections terminology.

    Here’s what’s changed:

    • Collections → Tables
    • Documents → Rows
    • Attributes → Columns

    This makes it easy for you to work with structured data while maintaining backwards compatibility.

    To support the terminology change, we’ve added the TablesDB API.

    A new API layer that helps you work with relational database concepts like tables, columns, and rows, without requiring any changes to your existing apps.

    While old collection methods still work with essential security & maintenance. All new features will now land in the TablesDB API.

    Read the announcement to learn more

  • More control and compatibility for custom domains

    We've added new DNS records to improve security and reliability for Appwrite domains.

    What's new

    • CAA records are now included, strengthening security by controlling which certificate authorities can issue SSL certificates for your domains.
    • AAAA records have been added, providing better reliability with IPv6 support.

    These changes give you more flexibility and help reduce the chance of misconfigured certificates or DNS errors.

    Learn more about Appwrite DNS

  • Node.js 22 upgrade, execution stability, and UX fixes

    We've shipped updates and bug fixes across Functions, Sites, and the Console to improve stability and developer experience.

    What's new

    • Node.js 22 runtime updated from 22.9 → 22.18
    • You can now filter function executions by deploymentId for easier debugging
    • Avatar API favicon endpoint now supports SVG icons

    Fixes and improvements

    • Dynamic keys no longer cause random execution failures
    • Executions with >1MB of logs no longer fail
    • Cookies now work correctly in SSR Appwrite Sites
    • Fixed Flutter onboarding flow that was not working in some cases
    • Fixed newspaper-like fonts in error pages
    • Index length configuration is now accessible to all users
    • Multiple fixes to improve layout, alignment, and responsiveness

    These changes are now live. Let us know if they improve your workflows or if you run into anything unexpected.

    Join the discussion on Discord

  • Announcing Timestamp Overrides: Accurate timelines for production workloads

    We’re excited to announce one more powerful addition to Appwrite Databases: Timestamp Overrides

    In many data workflows, imported records automatically take on the date and time they are added to the new system. While fine for some cases, this can cause issues when migrating data or integrating systems where original timestamps matter for accurate audit trails, analytics, and chronological order.

    With Timestamp Overrides, you can manually set $createdAt and $updatedAtwhen importing or creating documents, ensuring your data history stays true from the start.

    Available on Cloud and will soon be coming to Self-Hosted in the next release.

    Read the announcement to learn more

  • Announcing Appwrite's new pricing plans

    We are updating Appwrite’s pricing as part of Appwrite Cloud’s move from beta to General Availability. For an extended period, Appwrite Cloud beta remained free for all users. As of January 2024, we introduced pricing for beta. Today, we are introducing a new base price and an updated pricing model that aligns with developer needs and industry standards. This will include pricing for Appwrite Sites and Messaging.

    Apwrite’s new pricing

    This new structure and pricing are designed to be more predictable and better aligned with how teams actually use Appwrite. Below is a brief overview of the pricing changes, which we elaborate on in the official announcement.

    Starting September 1st, 2025, the following pricing changes will go into effect:

    • The base price for Pro will go from $15 to $25 per month
    • The per-seat pricing model is moving to a per-project pricing model
    • Resources will be per project instead of per organization, and we will be giving you more resources per project
    • The bandwidth resources on Pro and Scale will increase by +500%, from 300GB to 2TB per month per project
    • The additional bandwidth price has decreased by 62%, from $40 per 100GB to $15 per 100GB
    • The price for GB hours has decreased by 33%, from $0.09 per GB hour to $0.06 per GB hour
    • The additional storage price has decreased by 6.7%, from $3 per 100GB to $2.8 per 100GB
    • Appwrite Messaging and Sites now have resource limits on Free, Pro, and Scale plans

    Read the announcement to learn more

  • Appwrite Cloud is now Generally Available

    Appwrite Cloud was designed to make it easier to build with Appwrite because we know self-hosting is not for everyone.

    Today, Appwrite Cloud is powering over 300,000 projects, and we are both proud and excited to announce its transition to general availability.

    Read the announcement to learn more

  • Announcing Atomic numeric operations: Safe, server-side increments and decrements

    Introducing: Atomic numeric operations

    A new Database feature that lets you increment or decrement numeric fields directly on the server, without fetching the full document. It’s fast, safe, bandwidth-efficient, and concurrency-friendly.

    Before this feature, updating a number meant fetching the entire document, modifying it on the client, and writing it back, a process prone to race conditions, unnecessary bandwidth use, and extra logic to handle edge cases.

    With Atomic numeric operations, you simply send a delta (like +1 or -3), and Appwrite applies the update atomically on the server. No full document reads, no conflicts, no custom logic. Just consistent, permission-aware updates that work reliably under load.

    This feature is now live for both Appwrite Cloud and Self-Hosted environments.

    Read the announcement to learn more

Start building with Appwrite today

Get started

Our plans

  • Free

    $0

    A great fit for passion projects and small applications.

    Get started
  • Pro

    Most popular
    From
    $25
    /month

    For production applications that need powerful functionality and resources to scale.

    Start building
  • Enterprise

    Custom

    For enterprises that need more power and premium support.

    Contact us