Skip to content
Databasezy

Realtime Coming soon

Live updates over WebSockets

Send messages between clients, track who is online and stream inserts, updates and deletes from Postgres, each subscriber seeing only the rows its policies allow. Realtime is being built now.

Realtime is in development. Everything on this page describes how it works at launch. Coming soon

Realtime, step by step

  1. Step 01

    Open a channel

    Clients connect to /realtime/v1 with a publishable key or a user's session and join named channels.

  2. Step 02

    Broadcast and track presence

    Send low-latency messages to everyone on a channel and keep a shared list of who is online.

  3. Step 03

    Subscribe to changes

    Choose the tables and events to publish; changes stream from a logical replication slot on your database.

  4. Step 04

    Stay within policy

    Postgres evaluates each subscriber's row-level security, so a client never receives a row it cannot select.

What you get

  • Broadcast

    Ephemeral messages between clients, fanned out in the cell that runs your project.

    Coming soon
  • Presence

    A shared, conflict-free view of who is connected to a channel and their state.

    Coming soon
  • Postgres changes

    Inserts, updates and deletes from the tables you publish, checked against the subscriber's policies.

    Coming soon
  • realtime-js compatible

    supabase.channel() with broadcast, presence and postgres_changes targets your project endpoint.

    Coming soon

Live today and coming next

Every part of this service and where it stands. The list changes as each piece ships, and the changelog announces it.

  • Broadcast Coming soon
  • Presence Coming soon
  • Postgres changes filtered by row-level security Coming soon

Live: available on the platform today. Coming soon: being built now; prices and plan limits are already published. See every service on the platform overview.

Try it

Joining a channel with supabase-js.

supabase-js
import { createClient } from "@supabase/supabase-js";

// Your project's endpoint and publishable key, from Project settings in the portal.
const supabase = createClient("https://<ref>.us-east.databasezy.com:8443", "<publishable-key>");

supabase
  .channel("room-1")
  .on("broadcast", { event: "message" }, ({ payload }) => console.log(payload))
  .subscribe();

Plan availability

Generated from the same plan catalogue that billing and the API use.

  • Free

    $0 /mo
    Coming soon

    50 connections per project, 500K messages a month

  • Solo

    $25 /mo
    Coming soon

    10,000 connections per project, 5M messages a month

  • Team

    $599 /mo
    Coming soon

    50,000 connections per project, 50M messages a month

  • Enterprise

    Custom
    Coming soon

    Unlimited connections per project; usage set in your contract

Above the allowance, messages are $2.50 per million and peak connections $10 per 1,000 a month. On Free the allowance is a hard limit.

Compare every plan on the pricing page

Questions

When can I use it?

Realtime is being built now. This page and the docs switch to Live when it ships, and the changelog announces it.

How are policies applied to database changes?

Postgres runs the policy check as the subscriber's role against each changed row. Policies are never re-implemented in application code.

Create your first database

A free instance, no card. Upgrade when you outgrow it; nothing converts silently.