Pick Dart 3.12 in the runtime dropdown when creating or updating a Function, or pick Flutter 3.44 under your Site’s Runtime settings. The change applies to the next deployment, your active deployment is not affected until you redeploy.
Appwrite now ships a first-class Presences API for short-lived user statuses like online, away, editing, or typing. Each presence is a small record attached to a user, with a status string, optional metadata, an expiresAt timestamp (up to 30 days), and the same permissions model as the rest of the platform.
Presences broadcast every change over dedicated Realtime channels (presences and presences.<ID>) as upsert, update, and delete events, so an "online now" list, a typing indicator, or a "viewing this page" cue is a single Channel.presences() subscription away. Stale records emit delete events automatically when they expire, no cleanup job required.
Combine it with Realtime queries and a client only receives the presence events its UI actually needs to render, which makes the API a fit for multiplayer games and live movement tracking as much as for online indicators.
Appwrite SDKs now upload Storage file chunks in parallel where the host runtime supports overlapping HTTP requests. Chunking, concurrency limits, and ordering are handled inside the client; your createFile calls stay the same.
In our Node SDK benchmarks, a 1.28 GB upload dropped from 4 minutes 44 seconds to under 40 seconds, up to a 7.10x improvement at the default concurrency of 8. Smaller files see proportionally smaller gains since they have fewer chunks to overlap.
Appwrite Auth now supports Email policies, letting you restrict which email addresses can be used for user creation and email updates on a project. Three independent toggles cover the most common signup hygiene problems: free providers like Gmail and Yahoo, aliased addresses such as subaddresses and provider-specific variations of one inbox, and disposable providers like Mailinator.
Each policy is its own toggle, so a B2B product can require corporate addresses without also blocking disposable ones, and a consumer product can keep free providers open while shutting out throwaway inboxes. The policies run at signup and on email updates only. Existing users keep their sessions and can still log in.
Configure email policies from the Console under Auth > Security, or through any server SDK using the Project service.
Appwrite Sites now supports Bun (1.0, 1.1, 1.2, 1.3) and Deno (1.40, 1.46, 2.0, 2.5, 2.6) as build runtimes for every Node-based framework.
Switch the build runtime per site under Site settings, in the Runtime settings section. The change applies on the next deployment, your active deployment is not affected until you redeploy.