Skip to content
c17 .ioJoin list

Stacks / Backend

Easy

ntfy / Gotify

Push notifications you host. ntfy is Apache-2.0; Gotify is MIT — OneSignal without the message pack.

The problem

OneSignal meters push across mobile and web. You wanted a server that accepts PUT/POST and fans out to devices you control. ntfy is Apache-2.0 (binwiederhier/ntfy). Gotify is MIT (gotify/server) if you want that WebSocket server plus a UI. Novu is listed in older catalogs as a pricing page — the novuhq/novu GitHub license file is LICENSE-ENTERPRISE, so it is not this OSS path. This is not every OneSignal journey, email, or SMS channel.

Replaces

OneSignal

Replace OneSignal

Estimated SaaS saved

$1,200

per year, small team, before lock-in

Start on Railway

Centrifugo if this is WebSockets, not push to a phone

Sponsor this stack Tip jar

Placeholder: ntfy (or Gotify) as a Railway service with a volume. Bind HTTP to 0.0.0.0:$PORT. No one-click template in this repo yet — Start on Railway. WebSockets stay on /stacks/centrifugo-realtime.

The stack

Cost table

You stop payingTypical / yearSelf-host instead
OneSignal (small team)$1,200ntfy or Gotify

Agent setup prompt

Replace OneSignal with ntfy (preferred) or Gotify.

- Official image, persist, create one topic, send a test PUT. Install the ntfy or Gotify app on one phone you own.
- Do not claim OneSignal journeys, email, or SMS. Write AGENT_PROMPT.md.

Also as markdown: /stacks/ntfy-push.md

FAQ

ntfy or Gotify?
ntfy if you want HTTP PUT/POST and phone apps. Gotify if you want a MIT WebSocket server and UI. Pick one.
Why not Novu?
novuhq/novu's GitHub license file is LICENSE-ENTERPRISE. This page stays on Apache-2.0/MIT servers.
Is this Pusher?
No. Pusher/Ably are WebSockets — /replace/pusher. This page is push notifications.