> ## Documentation Index
> Fetch the complete documentation index at: https://docs.powersync.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Real-time Streaming

> Replace Supabase Realtime with PowerSync streaming sync and the watch() API for efficient, offline-capable database change listeners.

If your app uses Supabase Realtime to listen for database changes (via e.g. [Stream](https://supabase.com/docs/reference/dart/stream) in the Supabase Flutter client library), it's fairly simple to obtain the same behavior using PowerSync.

Postgres changes are constantly streamed to the [PowerSync Service](/architecture/powersync-service) via the logical replication publication.

When the PowerSync Client SDK is online, the behavior is as follows:

1. Data changes are streamed from the PowerSync Service to the SDK client over HTTPS
2. Using the `watch()` API, client-side SQLite database changes can be streamed to your app UI

When the SDK is offline, the streaming stops, but automatically resumes when connectivity is restored.

Example implementations of `watch()` can be found below

* [React Native example](https://github.com/powersync-ja/powersync-js/blob/92384f75ec95c64ee843e2bb7635a16ca4142945/demos/django-react-native-todolist/library/stores/ListStore.ts#L5)
* [Flutter example](https://github.com/powersync-ja/powersync.dart/blob/master/demos/supabase-todolist/lib/models/todo_list.dart#L46)
