supabase / realtime
Broadcast, Presence, and Postgres Changes via WebSockets
github.com/supabase/realtimeIndexed at 5357e33Up to date with upstream
What is realtime?
realtime is a server for sending ephemeral messages, synchronizing shared state, and listening to Postgres changes over WebSockets. It provides Broadcast, Presence, and Postgres Changes functionality for authorized clients. realtime is written primarily in Elixir using the Phoenix Framework.
Written by a model from the README and the source
585 files and 19 symbols in 9 modules, led by Elixir (445 files) and JavaScript (3).
Code health
This codebase scores 8.4 out of 10 for code health, which we rate good. It also scores maintainability 9.9 and static performance 10.0 out of 10. The three are scored separately and never blended into one number. Risk is concentrated, as it usually is: 50 of 585 files are git hotspots, and they average 6.5 — which is where the fixes pay off most.
Use supabase/realtime in your agent
Point Claude Code, Cursor, Codex or VS Code at this repository. Your agent gets the index this page is built from: cited answers, callers, history and health for any file.
- 1.In Claude, open Customize → Connectors, click +, then Add custom connector. On a Team or Enterprise plan an owner adds it first under Organization settings → Connectors.
- 2.Paste the server URL below as the Remote MCP server URL, then click Add.
- 3.Click Connect. A Repowise sign-in window opens. Approve access.
- 4.Repowise's tools are now available in your Claude chats.
Connect with one click. Sign in with Repowise (OAuth), no API key to copy. Works in Claude on the web, desktop, and mobile.
Docshttps://api.repowise.dev/mcp/supabase/realtime
This repo is public, so anyone with a Repowise account and an API key can connect.
Try asking
- get_overview()
- get_answer("how is realtime put together?")
- get_why("why is realtime structured this way?")
Explore realtime
- DocumentationModule-by-module documentation, 43 pages.
- ArchitectureDependency graph, layers and third-party dependencies.
- Code healthEvery file's score and the findings behind it.
- CommitsEach commit's effect on code health.
- OverviewEverything else the index found: contributors, decisions, what changed this week.
Key features of realtime
- Broadcast sends ephemeral messages from clients to clients over WebSockets.
- Presence tracks and synchronizes shared state between clients.
- Postgres Changes listens to Postgres database changes and sends them to authorized clients.
- realtime provides a Phoenix Framework server implemented in Elixir.
How supabase/realtime works
Client and tenant requests enter the Phoenix/Elixir backend and pass through the realtime application layer. The lib directory contains the main application code, including database access and telemetry. The lib/extensions/postgres_cdc_rls/subscriptions.ex file handles subscription logic for Postgres change data capture with row-level security. The lib/realtime_web directory provides web-facing functionality, including the dashboard and API endpoints. The lib/realtime_web/dashboard/tenant_migrations.ex file handles tenant migration operations for the dashboard. Runtime output includes HTML and LiveView state, JSON responses, and logged or telemetry events.
The codebase has 585 files and 19 symbols in 9 modules, led by Elixir, JavaScript and Shell. Code health is 8.4 out of 10, rated good.
supabase/realtime FAQ
What is realtime?
realtime is a WebSocket server for ephemeral messaging, shared-state synchronization, and Postgres change notifications. It provides Broadcast, Presence, and Postgres Changes.
How does realtime work?
realtime receives client and tenant requests in a Phoenix/Elixir application layer. The server routes subscriptions and database changes to authorized clients and returns WebSocket, JSON, HTML, LiveView, and telemetry outputs.
What language is realtime written in?
realtime is written primarily in Elixir and uses the Phoenix Framework. The repository also includes JavaScript, TypeScript, shell, and Dockerfile files.
How is the realtime code organized?
realtime places its main application code in lib, tests in test, runtime configuration in config, and supporting runtime files in priv. The realtime_web area handles web-facing pages and API endpoints.
Who is realtime for?
realtime is for applications that need ephemeral client messaging, synchronized shared state, or authorized notifications of Postgres changes over WebSockets.
What license does realtime use?
realtime uses the Apache-2.0 license.
The summary, features and answers on this page are written by a model from the README and the source, and refreshed with each index.
About this page
Get a page like this for your own codebase
Repowise built this map of supabase/realtime from its source and git history. It parses every symbol, draws the dependency graph, scores each file's health from complexity, duplication, coverage and churn, finds hotspots and owners in the history, and writes documentation for every module. Your coding agent reads the same index over MCP, so its answers cite real files.
Prefer local? pip install repowise && repowise init indexes your own checkout, no account needed.
Maintain supabase/realtime?
Claim this page, add a badge to the README, or re-index it.
Claim this page
Sign in with GitHub and we check that you are an admin or maintainer of supabase/realtime. Then add a badge to the README that links readers here.
Add a badge to your README
Every badge is public, cached, and updates on its own after every index. Nothing to install.
Repowise badge
Links to this page, with no score on it. Adding it also re-indexes the repo every week.
[](https://repowise.dev/repo/supabase/realtime?src=badge_wiki)Code health badge
The repo's health score out of 10, from the latest index.
[](https://repowise.dev/repo/supabase/realtime?src=badge_health)Code health card
A larger card with the score, its change since the last index, and when it was measured. The HTML version follows the reader's light or dark theme.
[](https://repowise.dev/repo/supabase/realtime?src=badge_card)