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.
Read the announcement
