I would like a breakdown of Reddit's actual costs vs their proposed fees. Why isn't Reddit profitable? Is there a way to make Reddit profitable without charging for API access?
Based on their published user numbers and revenue, Selig estimated that reddit's revenue per user is about $0.12.
They are asking for $0.24 per 1,000 API calls. Apollo averages ~345 calls per-user per-day (although some users are much higher), but Reddit claims that other apps are "more efficient" and only use about 100 calls/day.
If we assume 100 calls/day/user, then that's 36,500 calls/year/user, and a user is worth $0.12/year, so to break-even, reddit should be charging about $0.003 per 1,000 API calls, instead of $0.24.
> Apollo averages ~345 calls per-user per-day
The mobile front end does about 345 calls/user/day
The push notification server does 8640 calls/user/day (one call every 10 seconds).
In https://youtu.be/Ypwgu1BpaO0?t=1772 he describes how that works.
> I guess there's an analogy um the way Reddit notifications work just for your inbox like you got a message or something um they work in so far as if I the developer of the app want to um say make sure that you get that notification within 10 seconds I have to be checking Reddit every 10 seconds to go like is there anything new is there anything new? is there anything new? is there anything new? okay. There is okay I'll tell is there anything new and then just repeating that at nauseam so you can imagine if you get a message once a week I'm checking every 10 seconds and then once during that whole week I get that message and then I can send it to you um so 99.99 of those API calls were wasted so we've talked to Reddit like that my friend who works on my server um and myself and I've said like what would be so much better is if we could just kind of keep like a port open with Reddit and say like you just tell us when there's a notification ready and we'll beam it off we don't have to bug you all the time and it's logical right and that's how a lot of services do it it's like an event-based API and um that's just not something reddit's ever uh given us
> The push notification server does 8640 calls/user/day (one call every 10 seconds).
I've seen you parroting this around in every thread, and don't understand why.
First of all, none of the math checks out with your theory. But I'll break down why. Here[0] he says Apollo has over 100k DAUs (I noticed you've also stopped using that link...). He also says
> At 100,000+ users, that's in the realm of 60 million requests per hour that my server would have to handle, not to mention parsing the results, coordinating tokens, etc. I really can't do that for nothing, so the plan was to offer push notifications with a small fee associated to cover these ongoing server costs.
> I also offer a completely free system that does not use a server so those who don't want to have to pay can have their device function as the server and use local notifications (which are slightly delayed as it uses Background Fetch and using the device uses more battery), but remote notifications necessitate a server.
> If there's nothing that can be done, Apollo won't be able to offer push notifications unfortunately.
He has stated here[1] that API pricing would cost him "almost $2m per month."
So let's check the math.
345 + 8640 API calls / user / day = 8985 / user / day
8,985 API calls x 100,000 users = 898,500,000 / day
Using the absolute average month of 30.4375 days:
30.4375 x 898,500,000 = 27,348,093,750 req / month (@ 100k users)
Or in API pricing $6,563,542.50 / month, which is almost 3x as much as he said it would cost.
> Note that it does a request every 10 seconds for each user. At the API rate that would be about $0.25 every 3 hours (for each user) to support it.
They only do that for each user, that has paid for and has an active Apollo Ultra ($5/mo) subscription. That's going to remove a significant chunk of users.
If you want to verify any of this for yourself, the backend code is also now fully readable[2]. But it looks like from their backend code, they do a maximum of 100 users[3] every 5 seconds[4].
Additionally, that's Reddit just being stupid not them. Reddit offers no alternative way to get real-time notifications from their API, and with the paid API won't as well.
[0]: https://www.reddit.com/r/apolloapp/comments/9l3ema/apollo_13...
[1]: https://www.reddit.com/r/apolloapp/comments/144f6xm/apollo_w...
[2]: https://github.com/christianselig/apollo-backend
[3]: https://github.com/christianselig/apollo-backend/blob/b992d2...
[4]: https://github.com/christianselig/apollo-backend/blob/b992d2...