Edit: I am also looking for a new opportunity. If you need a good Staff/Principal Engineer, check out my resume here: https://heckel.io/resume.pdf
Edit: I am also looking for a new opportunity. If you need a good Staff/Principal Engineer, check out my resume here: https://heckel.io/resume.pdf
You've made a beautiful piece of software for your own enjoyment and the benefit of others. It is just what it needs to be. Bravo. In a world where projects get massively complicated and pumped full of VC funding, may efforts like this live on.
I guarantee for nothing, since this is a spare time project. That said, I have had zero outages in 11 months, see https://ntfy.statuspage.io/
When it outgrows the single EC2 instance, I'll likely start building some distributed thingy to spread the load and do some HA things (sounds like fun). Probably just a load balancer and 2-3 instances with a rqlite backend instead of SQLite, nothing too fancy.
Right now that's not necessary. As you can see, it handles traffic just fine for now.
rqlite will give you HA, but won't help with load (rqlite replicates for reliability, not for write performance). But I like to think the it'll give you solid -- and simple to use -- HA. Replicated just replaced their use of Postgres with rqlite for this reason[2].
[1] https://github.com/rqlite/rqlite
[2] https://www.replicated.com/blog/app-manager-with-rqlite/
> turn it into an actual business :-) It'd be a lot more fun
Not only could it _not_ be more fun, but it might actually suck all the existing fun out of it completely. But the OP will know better about that!
As for your hypothesis: I can only speak for myself, but I just don't want to ruin my hobby by monetizing it. Plus, I've spent enough time with the community to know that as soon as money gets involved, people are suddenly not so kind anymore. I just like it more when people are kind and polite to each other and treat each other with respect...
I am incredibly humbled by the sponsorships. I would have never thought ntfy would take off like that. I love open source and I promise it'll always be free and open (as long as I can reasonably fight of the abusers).
If you'd like to help me out me, you can donate via GitHub Sponsors: https://github.com/sponsors/binwiederhier
That being said, it's probably not worth migrating to another provider at this point.
And it is. It's not falling apart from the HN traffic and it has a lot of head room. Plus. It's doing 400k messages a day already easily.
Anyway. Thank you so much for your generosity. I am humbled and thankful for your support.
But if you don't find it fun spending time performance optimizing to the extreme, and can afford it, then there's nothing quite like massively over-provisioning hardware. It makes a lot of performance and reliability problems go away.
For this creator, his hobby is well into the realm of "could productize some component", even if just creating derivatives of this for some commercial purpose. I'd much rather spend time on that than the optimization part. My thought is HN has skewed more technical than entrepreneur over the years and the folks who are into the optimizations are more vocal in the thread. Could also just be the cohort of HN that was attracted to this article. "Send push notifications to your phone" sounds pretty technical. Or, the tech recession is changing mood about money and I'm not in tech.
As for the scale question: The server is already tuned for scale: https://ntfy.sh/docs/config/#tuning-for-scale
If you have any more ideas of what nobs to turn, let me know.
IPs: 9756
Clients: 9980
- Google Play: 2796
- F-Droid: 5985
- iOS: 794
- curl: 62
- other: 343
Messages:
- Successful: 310076
- Failed (rate limited): 104741
- Failed (other): 6511
Top publishers (* = limit exemption):
22908 matrix.org*
22352 matrix.gateway.unifiedpush.org*
18286 up.schildi.chat*
16134 192.124.x.x
14056 matrix.envs.net*
13376 108.35.x.x
7794 114.132.x.x
6035 112.78.x.x
5432 88.99.x.x
5366 138.201.x.x
In terms of open connections, it varies, but right now it's 5k active connections. But there are many many self-hosters out there, and the people using Firebase (no "instant delivery") are also not counted in that.You can subscribe to the stats above using the https://ntfy.sh/stats topic (old messages are only cached for 12h, so half the day it shows up as empty)
It wont be me. But some enterprising engineer/pm/group who was recently laid off in this downturn will probably make a go of it.
I am suffering a little right now while I try to add E2E encryption, because I structured the handlePublish logic awkwardly. But other than that there have been no surprises.
Sorry that's such a boring answer.
Could you elaborate on how this differs from gotify?
I decided to add Ntfy.sh support today just because it was so goddamn easy. Thanks for the cool service!
Now whenever new pull requests, issues or commits are made I get a ding on my phone!
And to subscribe, either use UnifiedPush (https://unifiedpush.org/), or use intents (see link above). Or, implement your own foreground service with WebSockets (just like the ntfy app does).