<p>Eight years ago, I posted in the Apple subreddit <a href="https://www.reddit.com/r/apple/comments/2u86mj/announcing_apollo_a_brand_new_gorgeous_reddit_app/">about a Reddit app I was looking for beta testers for</a>, and my life completely changed that day. I just finished university and an internship at Apple, and wanted to build a Reddit client of my own: a premier, customizable, well-designed Reddit app for iPhone. This fortunately resonated with people immediately, and it's been my full time job ever since.</p> <p>I've talked to a lot of people, and come to terms with this over the last weeks as talks with Reddit have deteriorated to an ugly point, and in the interest of transparency with the community, I wanted to talk about how I arrived at this decision, and if you have any questions at the end, I'm more than happy to answer. This post will be long as I have a lot of topics to cover.</p> <p>Please note that I recorded all my calls with Reddit, so my statements are not based on memory, but the recorded statements by Reddit over the course of the year. One-party consent recording is legal in my country of Canada. Also I won't be naming names, that's not important and I don't want to doxx people.</p> <p>On April 18th, <a href="https://www.reddit.com/r/reddit/comments/12qwagm/an_update_regarding_reddits_api/">Reddit announced changes that would be coming to the API</a>, namely that the API is moving to a paid model for third-party apps. Shortly thereafter we received phone calls, however the price (the key element in an announcement to move to a paid API) was notably missing, with the intent to follow up with it in 2-4 weeks. </p> <p>The information they did provide however was: we will be moving to a paid API as it's not tenable for Reddit to pay for third-party apps indefinitely (understandable, agreed), so they're looking to do equitable pricing based in reality. They mentioned that they were not looking to be like Twitter, <a href="https://www.wired.co.uk/article/twitter-data-api-prices-out-nearly-everyone">which has API pricing so high it was publicly ridiculed</a>. </p> <p>I was excited to hear these statements, as I agree that long-term Reddit footing the bill for third-party apps is not tenable, and with a paid arrangement there's a great possibility for developing a more concrete relationship with Reddit, with better API support for users. I think this optimism <a href="https://www.reddit.com/r/apolloapp/comments/12ram0f/had_a_few_calls_with_reddit_today_about_the/">came across in my first post</a> about the calls with Reddit.</p> <p>Reddit's promise was that the pricing would be equitable and based in reality. The reality that they themselves have posted data about over the years is as follows (copy-pasted from <a href="https://www.reddit.com/r/apolloapp/comments/13ws4w3/had_a_call_with_reddit_to_discuss_pricing_bad/">my previous post</a>):</p> <p>Less than 2 years ago <a href="https://www.redditinc.com/blog/reddit-secures-funding-to-continue-growth-plans/">they said they crossed $100M in quarterly revenue for the first time ever</a>, if we assume despite the economic downturn that they've managed to do that every single quarter now, and for your best quarter, you've doubled it to $200M. Let's also be generous and go far, far above industry estimates and say you made another $50M in Reddit Premium subscriptions. That's $550M in revenue per year, let's say an even $600M. In 2019, <a href="https://www.redditinc.com/blog/reddits-2019-year-in-review/">they said they hit 430 million monthly active users</a>, and to also be generous, let's say they haven't added a single active user since then (if we do revenue-per-user calculations, the more users, the less revenue each user would contribute). So at generous estimates of $600M and 430M monthly active users, that's $1.40 per user per year, or $0.12 monthly. These own numbers they've given are also seemingly <a href="https://www.cnbc.com/2019/02/11/reddit-users-are-the-least-valuable-of-any-social-network.html">inline with industry estimates as well</a>.</p> </blockquote> <p>This was a <a href="https://reddit.com/r/apolloapp/comments/13ws4w3/had_a_call_with_reddit_to_discuss_pricing_bad/jme726n/?c>very common comment</a> across the topics: "If Apollo has an apparent opportunity cost of $20 million per year, why not just buy them and other third-party apps, as they did with Alien Blue?"</p> </blockquote> <p>Steve: "Apollo threatened us, said they’ll “make it easy” if Reddit gave them $10 million." Steve: "This guy behind the scenes is coercing us. He's threatening us."</p> </blockquote> <p>As said, a common suggestion across the many threads on this topic was "If third-party apps are costing Reddit so much money, why don't they just buy them out like they did Alien Blue?" That was the point I brought up. If running Apollo as it stands now would cost you $20 million yearly as you quote, I suggested you cut a check to me to end Apollo. I said I'd even do it for half that or six months worth: $10 million, what a deal!</p> <p>The bizarre thing is - initially - on the call you interpreted that as a threat. Even giving you the benefit of the doubt that maybe my phrasing was confusing, I asked for you to elaborate on how you found what I said to be a threat, because I was incredibly confused how you interpreted it that way. You responded that I said "Hey, if you want this to go away…" Which is not at all what I said, so I reiterated that I said "If you want to Apollo to go quiet, as in it's quite loud in terms of API usage".</p> <p>Me: "I said 'If you want Apollo to go quiet'. Like in terms of- I would say it's quite loud in terms of its API usage." Reddit: "Oh. Go quiet as in that. Okay, got it. Got it. Sorry." Reddit: "That's a complete misinterpretation on my end. I apologize. I apologize immediately."</p> </blockquote> <p>The admission that you mistook me, and the four subsequent apologies led me to believe that you acknowledged you mistook me and you were apologetic. The fact that you're pretending none of this happened (or was recorded), and instead espousing a different reality where instead of apologizing for taking it as a threat, you're instead going the complete opposite direction and saying "He threatened us!" is so low I almost don't believe it.</p> <ul> </ul> <p>Some people are confused about this situation and don't understand what an API is. An API (Application Programming Interface) is just a way for an app to talk to a website. As an analogy, pretend Reddit is a bouncer. Historically, you can ask Reddit "Could I have the comments for this post?" or "Can you list the posts in AskReddit?". Those would be one API request each, and Reddit would respond with the corresponding data.</p> <p>Up until a week ago, <a href="https://github.com/reddit-archive/reddit/wiki/API">the stated Reddit API rate limits</a> that apps were asked to operate within was 60 requests per minute per user. That works out to a total of 86,400 per day. Reddit stated that Apollo uses 345 requests per user per day on average, which is also in line with my findings. Thats 0.4% of the limit Reddit was previously imposing, which I would say is quite efficient. </p> <p>As an analogy (can you tell I love analogies?), to scale the numbers, if I was to borrow my friend’s car and he said “Please don’t drive it more than 864 miles” and I returned the car with 3.4 miles driven, I think he’d be pretty happy with my low use. The fact that a different friend one week only used 1 mile is really cool, but I don't think either person is "inefficient".</p> <p>That being said, if Reddit would like to see Apollo make further optimizations to get its existing number lower, I’m genuinely more than happy to do so! However the 30 day limit they’ve given me after announcing the pricing to when I will start getting charged significant amounts of money is not enough time to deal with rewriting large parts of my app to lower total requests, while also changing the payment model, transitioning users, and ensuring this is all properly tested and gets through app review.</p> <p>Further, Reddit themselves said to me that the majority of the cost isn't the server, it's the opportunity cost per user, so the focus on 100 versus 345 calls, rather than the cost per user, doesn't sound genuine. At the very least providing even a bit more time to lower usage to their new targets would be feasible if they've historically provided it, and it's not the majority of the costs anyway.</p> <p>Me: "Because I assume the majority of it isn't server costs. I assume the majority is the opportunity cost per user." Reddit: "Exactly."</p> </blockquote> <p>One option many have suggested is to simply increase the price of Apollo to offset costs. The issue here is that Apollo has approximately 50,000 yearly subscribers at the moment. On average they paid $10/year many months ago, a price I chose based on operating costs I had at the time (server fees, icon design, having a part-time server engineer). Those users are owed service as they already prepaid for a year, but starting July 1st will (in the <strong>best</strong> case scenario) cost an additional $1/month each in Reddit fees. That's $50,000 in sudden monthly fee that will start incurring in 30 days.</p> <p>So you see, even if I increase the price for new subscribers, I still have those many users to contend with. If I wait until their subscription expires, slowly month after month there will be less of them. First month $50,000, second month maybe $45,000, then $40,000, etc. until everything has expired, amounting to hundreds of thousands of dollars. It would be cheaper to simply refund users.</p> <p>Going from a free API for 8 years to suddenly incurring massive costs is not something I can feasibly make work with only 30 days. That's a lot of users to migrate, plans to create, things to test, and to get through app review, and it's just not economically feasible. It's much cheaper for me to simply shut down.</p> <p>Hopefully that illustrates why, even more than the large price associated with the API, the 30 day timeline between when the pricing was announced and developers will be charged is a far, far, far bigger issue and not one I can overcome. Much more time would be needed to overhaul the payment model in my app, transition existing users from existing plans, test the changes, and have users update to the new version.</p> <p>As a comparison, when Apple bought Dark Sky and announced a shut down of their API, knowing that this API was at the core of many businesses, <a href="https://blog.darksky.net">they provided 18 months before the API would be turned off</a>. When the 18 months came, they ultimately extended it another 12 months, resulting in a total transition period of 30 months. While I'm not asking for that much, Reddit's in comparison is <strong>30 days</strong>.</p> <p>The issue is the size of the bill, not when it will arrive. Significant, significant charges for the API will start building up with 30 days notice on July 1st, the fact that the bill for those charges being 30 days from then is not important. If you hear that your electricity bill is going up 1,000x and the company tells you, "Don't worry, the bill only comes at the <em>end</em> of the month", I hope you understand how that isn't comforting.</p> <p>I hope I explained above why the 30 day time limit is the true issue. However in a perfect world I think lowering the price by half and providing a three month transition period to the paid API would make the transition feasible for more developers, myself included. These concessions seem minor and reasonable in the face of the changes.</p> <p>Reddit: "If there's an entity who's like 'Hey I'm showing really good progress', you know trying to like we're trying to get a contract in place, we're trying to do all that type of stuff, I don't think you're going to see us be like, you know, like overly aggressive on that timeline. And I feel pretty confident about that point by the way based on conversations I've heard internally."</p> </blockquote> <p>Reddit: "On the 90-day transition, remember that billing doesn't kick in until July 1. So you won't see your first bill from July until the beginning of August, and it won’t be due until the end of August (It’s net 30 day billing). You do, however, have to sign an agreement to get paid level access on July 1."</p> </blockquote> <p>In terms of timeline, what concerns me most is the short nature of it before I start incurring costs. I have a large amount of users at price points that I won’t be able to afford to support with 30 days notice. For instance, users who subscribed for a year for $10 six months ago when I had no idea any of this was coming, amounts to $0.83 per month or $0.58 after Apple’s cut. Even if I’m able to decrease my API usage down to the number in your charts, that still puts me in the red for everyone of those users for awhile with no recourse. A situation like this is one that is legitimately making me legitimately leaning toward shutting down the app, but one that I could salvage if given more time to transition from the free API to the paid API. </p> </blockquote> <p>January 26, 2023 Reddit: "So I would expect no change, certainly not in the short to medium term. And we're talking like order of years."</p> </blockquote> <p>January 26, 2023 Reddit: "There's not gonna be any change on it. There's no plans to, there's no plans to touch it right now in 2023. Me: "Fair enough." Reddit: "And if we do touch it, we're going to be improving it in some way."</p> </blockquote> <p>I've received so many messages of kind people offering to work with me to build a competitor to Reddit, and while I'm very flattered, that's not something I'm interested in doing. I'm a product guy, I like building fun apps for people to use, and I'm just not personally interested in something more managerial. </p> <p>Reddit: "I think one thing that we have tried to be very, very, very intentional about is we are not Elon, we're not trying to be that, we're not trying to go down that same path. [...] We are trying to do is just use usage-based pricing, that will hopefully be very transparent to you, and very clear to you. Or we're not trying to go down the same path that you may have seen some of our other peers go down." </p> </blockquote> </blockquote> <p>Abundantly. Unlike other social media companies like Facebook and Twitter who pay their moderators as employees, Reddit relies on volunteers to do the hard work for free. I completely understand that when tools they take to do their volunteer, important job are taken away, there is anger and frustration there. While I haven't personally mobilized anyone to participate in the blackout out of fear of retaliation from Reddit, the last thing I want is for that to feel like I don't support the folks speaking up. I wholeheartedly do.</p> <p>In hindsight, kinda yeah. Many of the other developers and folks I talked to were much less optimistic than I was, but I legitimately had great interactions with Reddit for many years prior to last week (they were kind, communicative, gave me heads up of changes), so when they said they were aiming to have pricing that would be fair and based in reality, I honestly believed them. That was foolish of me in hindsight, and maybe could have had a different outcome if I was more aggressive in the beginning. Sorry. /canadian</p> </blockquote> <p>On May 31st Reddit <a href="https://www.reddit.com/r/redditdev/comments/13wsiks/api_update_enterprise_level_tier_for_large_scale/">posted a chart of large excess usage by some unlabeled API clients</a>, and stated: "We reached out to the most impactful large scale applications in order to work out terms for access above our default rate limits via an enterprise tier."</p> <p>The only time that Apollo was reached out to by Reddit in any capacity about usage was late last year when we received an email about a 6 minute period where Apollo's server API usage increased by 35% before lowering again. Despite 35% for 6 minutes being a comparatively small blip (the above post references clients that are over by 500000%), we responded within 2 minutes. We offered to jump on a call with Reddit engineers if they needed an answer ASAP, identified the issue within several hours and Reddit thanked us for the fast investigation.</p> </blockquote> <p>Secondly, to say we have made no effort is categorically false. I have so many emails reached out to Reddit on multiple occasions expressing concern about and bugs inefficiencies in the API, or ideas on how to improve things, or significant Reddit bugs that made things hard on us. When Reddit has had questions for us, as discussed above, we immediately jumped into action to get an answer as quickly as possible.</p> <p>Me: "With the new change it'll be maybe like, one IP address. This is all obviously still within the API rate limits as the requests are from individual user accounts that have signed in. Again, long story short the result will be more optimized if anything, I just wanted to give a heads up and ensure that it'd be okay if Reddit suddenly saw the server go from a bunch of different IP addresses to a single one which might cause some confusion if I didn't give a heads up."</p> </blockquote> <p>Me: "Everything is going well, we just had a few questions about best practices making sure we’re following any suggestions your team has. Is there any way we could poke someone on your team with a few questions we’ve been having and have a tiny back and forth? We were just seeing some elevated response times, and just thought it would be great if we could maybe describe what we’re doing and see if anything seems off/suboptimal."</p> </blockquote> <p>We obviously respect the rate limit headers and if a user comes close to approaching it (within 50 requests of the 600 every 10 minutes limit) we stop their requests until the refresh period occurs. However we're seeing some users have very, very weird rate limit headers. Things like "requests remaining: 0, requests made: 17,483, reset: 598 seconds left" which indicates they've somehow made over 17 thousand requests in two seconds which seems hard to believe. </p> </blockquote> </blockquote> <p>Call on January 26, 2023 Reddit: "I cannot tell you how painful it is to use our API. [...] The API needs to change. Like it's just unusable. I am surprised that you're able to build a functional app on it to be honest."</p> </blockquote> <p>Steve: "Why not work with the third party apps? Their existence is not a priority for us. We don't use them. I don't use them. It's a part of our traffic but not a lot, and it's a lot of work on our side to keep them alive. If I have to choose where to put our effort, we're going to focus internally. I'm kind of open to it, but I haven't – and I can't convince you, but I don't get the sense that they want to work with us either."</p> </blockquote> <p>Reddit: "What I'm hearing is like, Yeah, great. We have this disagreement on pricing methodology, etc. But any feasible number that we get to, any number that's even in, the zip code of what we're sharing with you is unfeasible from your perspective financially. So it's like arguing around the edges of that price thing is like, it just won't make any sense to you. And I presume also just given the NSFW stuff and the removal of ads that makes it even more trickier." Me: Yeah. I mean, to be very clear, I'm not saying I'm walking away from the negotiation table and taking my basketball and going home and just gonna kick up a storm. That's not my intention at all. <strong>I definitely still want to talk.</strong> I'm not asking you to lower the price by a hundred times or something. I don't think – depending on what you mean by zip code – I don't think I'm so unreasonable that I'm requiring you to bend over backwards here."</p> </blockquote> <p>Me: "I understand where Reddit's coming from in this. A free API, while appreciated, is not tenable for you especially heading into an IPO, and my only goal here is to come to a solution where we both feel understood. I also hear you that killing third-party clients isn't actually the goal, and in that spirit have been working on how to address your concerns from my end: [...]"</p> </blockquote> <p>Steve: "When did we start talking with them?" AnAbsurdlyAngryGoose: "What month did you first start?" Steve: "FlyingLaserTurtles? Do you remember? April or May of this year." FlyingLaserTurtles: "Maybe late March? But yes."</p> </blockquote> </blockquote> <p>When you announce that the API will be charging developers, the most important portion of that conversation is <strong>what will be charged</strong>, which was not available for almost two months after the initial call. From the time developers were told the price, to the time developers will be subject to the price, is 30 days, not "months". Months would have been very helpful, in fact.</p> <p>I've been talking to my rep at Apple, and over the next few weeks my plan is to release something similar to what Tweetbot did (Paul has been incredibly helpful in all of this) where folks can decide if they want a pro-rated refund on any existing time left in their subscription as Apollo will not be able to afford to continue it, or they can decline the refund if they're feeling kind and have enjoyed their time with Apollo.</p> <p>I was lucky enough to be there in person and it felt incredible. Some folks asked if there was any deeper meaning behind that, and while that would be cool, in all reality these things are so well produced that they've been done for a while now, so I'm sure it's just a coincidence, even if it's a really cool one.</p> <p>A funny amount of people have reached out wondering about all the extra monthly icons I had queued up for Apollo. I love them, was so excited for them, and I'll make them available immediately for the short time left, but if you're curious here's a screenshot of all of them: <a href="https://christianselig.com/apollo-end/remaining-icons.png">https://christianselig.com/apollo-end/remaining-icons.png</a></p> <p>We ended up with well over 100 custom icons created by incredibly talented designers, and I'm really sorry to those designers who didn't get to see their work launched in the app (to be clear, don't worry, I paid them all – there isn't some bs "exposure" agreement – but it's fun to have your icon launch and I feel bad!)</p> <p>I want to thank a lot of people who have made this last week bearable. First and foremost, the communities, Redditors, and moderators who have reached out in support of third-party apps, making Reddit's gaslighting a lot more bearable in making me feel like at least someone was understanding me and in my corner. </p> <p>My girlfriend's been absolutely incredible and supportive. This year was our 10th anniversary, and Monday was her 30th birthday. We're down in California for Apple's WWDC and had a bunch of things planned to do for her birthday afterward, and I feel terrible that we're flying home early to deal with all of this instead of making her 30th special. I'll make it up to her.</p> <p>The iOS developer community has been unbelievably kind to me over the past several weeks, I've spent the last week with many of them, even staying at an Airbnb with a bunch of them (they ordered me pizza as I wrote this post!), and I've got so many hugs and condolences haha. Specifically want to thank Paul Haddad of Tweetbot/Tapbots/Ivory, Ryan Jones, Brian Mueller, Curtis Herbert, André Meidoros, Quinn Nelson, Paul Hudson, Majd Taby, Ryan McLeod, Phill Ryu, Larry Hryb, Charlie Chapman, Mustafa Yusuf, Adrian Eves, Devin Davies, Jordan Morgan, Yariv Nassim, Will Sigmon, Barry Hershman, Joe Rossignol, Michael Simmons, Joe Fabisevich, my family, and so, so many more.</p> <p>No bullshit, I'll be fine. Through pure chance last year I spun off my silly Pixel Pals idea into a separate app, and that actually makes good revenue on the side. I also have savings. Recently (like last week) my city had <a href="https://globalnews.ca/news/9748845/halifax-wildfire-tantallon-homes-destroyed-photos-tour-homes/">its worst wildfires in history</a> with over 100 homes destroyed. That's brutal, losing an app is sad, but it's been helpful to me to recognize how much worse it could be just literally down the street from me.</p> <p>I build a second app called <a href="https://pixelpa.ls">Pixel Pals</a> that I spun off from Apollo that's thankfully done pretty well and I'll be spending more time on going forward. If you like the idea of digital pets it's a really fun app to check out. <a href="https://pixelpa.ls">https://pixelpa.ls</a> </p> <p>If any media/press folks have any questions, please shoot me an email rather than messaging me on Reddit, I missed a few last week because my inbox was blowing up. My email is <a href="mailto:[email protected]">[email protected]</a></p> </div> </div>