Compare

Foony vs Supabase Realtime

Two ways to stream Postgres and pub/sub to clients: a full BaaS with realtime included, or a dedicated realtime platform beside your own database.

Supabase Realtime ships broadcast, presence, and Postgres change streaming as part of the Supabase platform. Foony covers the same three jobs as a standalone service, including Database Sync for the Postgres you already run. The honest split is bundled convenience against dedicated capacity and guarantees.

When Foony fits

  • Delivery guarantees. Supabase’s server README states plainly that the server does not guarantee every message is delivered. Foony deduplicates publishes, guarantees per-channel order, and backfills gaps after reconnects.
  • Realtime capacity without a plan cliff. Supabase Free allows 200 connections and 100 messages a second, and Pro with the default spend cap allows 500 of each. Foony Free starts at 300 connections and 1,000 messages a second, and paid plans scale to 150,000.
  • Postgres change streaming that scales with subscribers. Supabase authorizes every change per subscriber on a single thread, and its own benchmark shows 5 changes a second at 3,000 RLS clients. Database Sync recomputes a query once per change and fans out the result to any number of subscribers.
  • Message volume at a price: $19/month includes 100M messages versus Pro’s 5M included and $2.50 per million after.
  • Keeping your database yours. Database Sync runs against the Postgres you already operate, no platform migration.

When Supabase Realtime fits

  • You want the whole backend for $25/month: Postgres, auth, storage, edge functions, and realtime in one bill.
  • Row-level security as the authorization model, so realtime reads follow the same RLS policies as queries.
  • Bigger payloads: 3 MB broadcast messages on paid plans versus Foony’s 1 MB.
  • Open source matters to you. The Realtime server is Apache 2.0 and self-hostable.

Features

FoonySupabase Realtime
DeliveryEffectively exactly once (idempotent publish, client dedup)No delivery guarantee, per the official server README
Live PostgresDatabase Sync: named queries become live docs, recomputed once per changePostgres Changes: row events per subscriber, RLS-filtered, single-threaded
PresenceBuilt in, with automatic re-entry on reconnectBuilt in, CRDT-backed
HistoryPer-prefix channel rules, up to 30 daysBroadcast replay, 72 hours, 25 messages per request
EncryptionEnd-to-end AES-GCM, key never leaves your clientsTLS in transit

Limits and pricing

FoonySupabase Realtime
Free tier9M messages/month, 300 concurrent connections, free forever200 connections, 2M messages/month, 100 messages/second
Entry paid plan$19/month for 100M messages$25/month (whole platform), 500 connections and 5M messages included
OverageOverage $0.25 per million messages$2.50 per million messages, $10 per 1,000 peak connections
Message size64 KB free, up to 1 MB on paid plans256 KB free, 3 MB paid
Message rateUp to 150,000/second by plan100/second free, 2,500/second on Team or capless Pro

Competitor numbers last checked July 2026. If something has drifted, tell us and we will fix it.

Moving over

Supabase Broadcast and presence map directly onto Foony channels and presence. Postgres Changes subscriptions usually become a Database Sync query: instead of merging row events client-side, you define the SELECT those events fed, and clients receive the query result as a live document.

Try it on the free tier

9M messages a month, presence, history, and the Pusher-compatible API are all on the free plan. No card required.