Skip to content
c17 .ioJoin list

Stacks / Backend

Medium

Centrifugo / AnyCable

Realtime you host. Centrifugo is Apache-2.0; AnyCable is MIT — Pusher and Ably without the connection meter.

The problem

Pusher and Ably meter connections, messages, and channels. You wanted a WebSocket server you run. Centrifugo is Apache-2.0 (centrifugal/centrifugo). AnyCable is MIT (anycable/anycable) if you want that realtime server in front of an app. Soketi is AGPL-3.0 and Pusher-protocol compatible, but it was last pushed 3 Mar 2025 — not the maintained path. This is not every Ably presence SKU, Pusher Beams, or a video room — LiveKit stays on /replace/zoom.

Replaces

Pusher / Ably

Replace Pusher Replace Ably

Estimated SaaS saved

$1,200

per year, small team, before lock-in

Start on Railway

ntfy / Gotify if this is push notifications, not WebSockets

Sponsor this stack Tip jar

Placeholder: Centrifugo (or AnyCable) as a Railway service. Redis if you scale beyond one node. Bind HTTP/WebSocket to 0.0.0.0:$PORT. No one-click template in this repo yet — Start on Railway. Push notifications stay on /stacks/ntfy-push.

The stack

Cost table

You stop payingTypical / yearSelf-host instead
Pusher / Ably (small team)$1,200Centrifugo or AnyCable

Agent setup prompt

Replace Pusher or Ably with Centrifugo (preferred) or AnyCable.

- One service, persist if the project requires it, Redis when you need more than one node. Point the client at the new WebSocket URL.
- Confirm one subscribe/publish. Do not claim every Beams or presence SKU. Write AGENT_PROMPT.md.
- Soketi is Pusher-protocol compatible but not the maintained path (last push 3 Mar 2025).

Also as markdown: /stacks/centrifugo-realtime.md

FAQ

Centrifugo or AnyCable?
Centrifugo if you want a language-agnostic realtime server. AnyCable if you want that Go server in front of an app. Pick one.
Why not Soketi?
Soketi speaks the Pusher protocol (AGPL-3.0) but was last pushed 3 Mar 2025. This page uses actively maintained servers.
Is this OneSignal?
No. OneSignal is push to phones — /replace/onesignal. This page is WebSockets.