Courier is Free (10k) / $35/mo. Telegraph is a self-hosted alternative at $0.99/mo. Here's when each makes sense.
| Telegraph | Courier | |
|---|---|---|
| Hosting | Self-hosted, your infra | Managed SaaS (cloud only) |
| Data location | Your server, your disk | Courier's cloud |
| Free tier | 500 notifications/mo | Free |
| Pro pricing | $0.99/mo | Free (10k) / $35/mo |
| Dependencies | None (single binary + SQLite) | N/A (managed) |
| Setup time | ~30 seconds | Account signup |
| Dashboard | Built-in at /ui | Cloud dashboard |
| License | BSL 1.1 | Proprietary SaaS |
Telegraph is a single Go binary with embedded SQLite. Install it with one command, and you are running in under a minute. Your data stays on your server.
curl -fsSL https://stockyard.dev/telegraph/install.sh | sh
Courier is a strong product. There is no point pretending otherwise. Where Telegraph earns its place is in situations where Courier cannot be used — airgapped environments, regulated industries, teams with strict data sovereignty requirements, or simply developers who prefer tools they can inspect end to end. If none of those constraints apply, Courier may genuinely be the better choice.
The operational difference is significant. Courier requires you to trust their infrastructure, their security practices, and their business continuity. Telegraph requires you to run a process and keep the data directory backed up. If your server dies, restore the binary and the SQLite file to a new server. The entire recovery procedure fits in a single paragraph because there is nothing else involved.
The migration path from Courier depends on how much history you need to bring over. If you only need active records, a manual re-entry through Telegraph's dashboard might be faster than writing a migration script. If you need full history, export from Courier and use Telegraph's POST API to import records. Either way, the process is measured in hours, not weeks.
Single binary. Free to start. $0.99/mo for Pro.