Facebook
From Christian, 10 Months ago, written in HTML5.
Embed
Download Paste or View Raw
Hits: 269
  1. <h1>? Apollo will close down on June 30th. Reddit’s recent decisions and actions have unfortunately made it impossible for Apollo to continue. Thank you so, so much for all the support over the years. ❤️Announcement ? (self.apolloapp)</h1>
  2.  
  3. <div class="usertext-body may-blank-within md-container "><div class="md"><p>Hey all,</p>
  4.  
  5. <p>It's been an amazing run thanks to all of you.</p>
  6.  
  7. <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>
  8.  
  9. <p>Today's a much sadder post than that initial one eight years ago. June 30th will be Apollo's last day.</p>
  10.  
  11. <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>
  12.  
  13. <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>
  14.  
  15. <h2>What happened initially?</h2>
  16.  
  17. <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>
  18.  
  19. <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>
  20.  
  21. <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>
  22.  
  23. <h2>When did they announce pricing?</h2>
  24.  
  25. <p>Six weeks later, they called to discuss pricing. I quickly put together a small app where I could input the prices and it would output monthly/yearly cost, cost for free users, paid users, etc. so I'd be able to process the information immediately.</p>
  26.  
  27. <p>The price they gave was $0.24 for 1,000 API calls. I quickly inputted this in my app, and saw that it was not far off Twitter's outstandingly high API prices, at $12,000, and with my current usage would cost almost $2 million dollars per month, or over <strong>$20 million per year</strong>.</p>
  28.  
  29. <h2>Why do you say Reddit's pricing is "too high"? By what metric?</h2>
  30.  
  31. <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>
  32.  
  33. <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>
  34.  
  35. <p>Apollo's price would be approximately $2.50 per month per user, with Reddit's indicated cost being approximately $0.12 per their own numbers. </p>
  36.  
  37. <p>A 20x increase does not seem "based in reality" to me.</p>
  38.  
  39. <h2>Why doesn't Reddit just buy Apollo and other third-party apps?</h2>
  40.  
  41. <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>
  42.  
  43. <p>I believe it's a fair question. If these apps apparently cost so much, an easy solution that would likely make everyone happy would be to simply buy these apps out. So I brought that up to them during a call on May 31st where I was suggesting a variety of potential solutions.</p>
  44.  
  45. <h2>Bizarre allegations by Reddit of Apollo "blackmailing" and "threatening" Reddit</h2>
  46.  
  47. <p>About 24 hours after that call with Reddit, I received <a href="https://christianselig.com/apollo-end/mastodon-message.png">this odd message on Mastodon</a>:</p>
  48.  
  49. <p>"Can you please comment publicly about the internal Reddit claim that you tried to “blackmail” them for a $10,000,000 payout to “stay quiet”?"</p>
  50.  
  51. <p>Then yesterday, moderators told me they were on a call with CEO Steve Huffman (spez), and he said the following per their transcript:</p>
  52.  
  53. <p>Steve: "Apollo threatened us, said they’ll “make it easy” if Reddit gave them $10 million."
  54. Steve: "This guy behind the scenes is coercing us. He's threatening us."</p>
  55.  
  56. <p>Wow. Because my memory is that you didn't take it as a threat, and you even apologized profusely when you admitted you misheard it. It's very easy to take a single line and make it look bad by removing all the rest of the context, so let's look at the full context.</p>
  57.  
  58. <p>I can only assume you didn't realize I was recording the call, because there's no way you'd be so blatantly lying if you did.</p>
  59.  
  60. <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>
  61.  
  62. <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>
  63.  
  64. <p>What did you then say? </p>
  65.  
  66. <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."
  67. Reddit: "Oh. Go quiet as in that. Okay, got it. Got it. Sorry."
  68. Reddit: "That's a complete misinterpretation on my end. I apologize. I apologize immediately."</p>
  69.  
  70. <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>
  71.  
  72. <p>But again, I've recorded all my calls with you just in case you tried something like this.</p>
  73.  
  74. <p>Transcript of this part of the call: <a href="https://gist.github.com/christianselig/a9d00a47c99a4d1d3d16bc19e05419c0">https://gist.github.com/christianselig/a9d00a47c99a4d1d3d16bc19e05419c0</a>
  75. Audio of this part of the call: <a href="http://christianselig.com/apollo-end/reddit-third-call-may-31-end.m4a">http://christianselig.com/apollo-end/reddit-third-call-may-31-end.m4a</a></p>
  76.  
  77. <p>(If you take issue with the call being recorded please remember that I'm in Canada and so long as one participant in the call (me) consents to being recorded, it's legal. If anyone would like the recording of the full call, I'm happy to provide.)</p>
  78.  
  79. <p>I bring this up for two reasons:</p>
  80.  
  81. <ul>
  82. <li>I don't want Reddit slandering me to internal employees or public people by saying I threatened them when they reality is that they immediately apologized for misunderstanding me.</li>
  83. <li>It shows why I've finally come to the conclusion that I don't think this situation is recoverable. If Reddit is willing to stoop to such deep lows as to slander individuals with blatant lies to try to get community favor back, I no longer have any faith they want this to work, or ever did.</li>
  84. </ul>
  85.  
  86. <h2>What is an API or an API request anyway?</h2>
  87.  
  88. <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>
  89.  
  90. <p>Everything you do on Reddit is an API request. Upvoting, downvoting, commenting, loading posts, loading subreddits, checking for new messages, blocking users, filtering subreddits, etc. </p>
  91.  
  92. <p>The situation is changing so that for each API request you make, there's a portion of a penny charged to the developer of that app. I think that is very reasonable, provided, well, that the price they charge is reasonable.</p>
  93.  
  94. <h2>Claims that Apollo is "inefficient"</h2>
  95.  
  96. <p>Another common claim by Reddit is that Apollo is inherently inefficient, using on average 345 requests per day per user, while some other apps use 100. I'd like to use some numbers to illustrate why I think this is very unfairly framing it.</p>
  97.  
  98. <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>
  99.  
  100. <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>
  101.  
  102. <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>
  103.  
  104. <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>
  105.  
  106. <p>Me: "Because I assume the majority of it isn't server costs. I assume the majority is the opportunity cost per user."
  107. Reddit: "Exactly."</p>
  108.  
  109. <h2>Why not just increase the price of Apollo?</h2>
  110.  
  111. <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>
  112.  
  113. <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>
  114.  
  115. <p>I hope you can recognize how that's an enormous amount of money to suddenly start incurring with 30 days notice. Even if I added 12,000 new subscribers at $5/month (an enormous feat given the short notice), after Apple's fees that would just be enough to <em>break even</em>.</p>
  116.  
  117. <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>
  118.  
  119. <h2>So what is the REAL issue you're having?</h2>
  120.  
  121. <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>
  122.  
  123. <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>
  124.  
  125. <h2>Reddit says you won't get your first bill until August 1st, though!</h2>
  126.  
  127. <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>
  128.  
  129. <h2>What would be a good price/timeline?</h2>
  130.  
  131. <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>
  132.  
  133. <h2>I thought you said Reddit would be flexible on the timeline?</h2>
  134.  
  135. <p>That was my understanding as well based on what they said on a call on May 4th:</p>
  136.  
  137. <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>
  138.  
  139. <p>However when asking about more time, such as a 90 day transition period to make the changes, they said:</p>
  140.  
  141. <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>
  142.  
  143. <h2>Did you explicitly ask Reddit for more time?</h2>
  144.  
  145. <p>Yes, my last email to them (including Steve) said:</p>
  146.  
  147. <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>
  148.  
  149. <p>In prior calls you mentioned that provided I kept communicating and progress was being made, the timeline wasn’t an absolute. </p>
  150.  
  151. <p>Is that still the case, or is it now the case that the date is set in stone? </p>
  152.  
  153. <p>That was a week ago and I've yet to receive any further contact from Reddit.</p>
  154.  
  155. <h2>Isn't this your fault for building a service reliant on someone else?</h2>
  156.  
  157. <p>To a certain extent, yes. However, I was assured this year by Reddit not even that long ago that no changes were planned to be made to the API Apollo uses, and I've made decisions about how to monetize my business based on what Reddit has said.</p>
  158.  
  159. <p>January 26, 2023
  160. Reddit: "So I would expect no change, certainly not in the short to medium term. And we're talking like order of years."</p>
  161.  
  162. <p>Another portion of the call:</p>
  163.  
  164. <p>January 26, 2023
  165. 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.
  166. Me: "Fair enough."
  167. Reddit: "And if we do touch it, we're going to be improving it in some way."</p>
  168.  
  169. <h2>Will you build a competitor? Move to one of the existing alternatives?</h2>
  170.  
  171. <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>
  172.  
  173. <p>These last several months have also been incredibly exhausting and mentally draining, I don't have it in me to engage in something so enormous.</p>
  174.  
  175. <h2>Will you sell Apollo?</h2>
  176.  
  177. <p>Probably not. Maybe if the perfect buyer came along who thought they could turn Apollo into something cool and sustainable, but I'd rather the app just die if it would go to a company that would turn something I worked really hard on into something that would ruin its legacy.</p>
  178.  
  179. <p>To be clear: I am not threatening anyone in the previous paragraph.</p>
  180.  
  181. <h2>Reddit states that the Twitter comparison is unfair</h2>
  182.  
  183. <p>Reddit stated on the first call that they don't want to be like Twitter:</p>
  184.  
  185. <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>
  186.  
  187. <p>They now state that the comparison of how close their pricing comes to Twitter is an unfair one, and that when they said that above, they were apparently referring not to the pricing, but to the decision Twitter made to ban third-party apps at a rule level, not a pricing level.</p>
  188.  
  189. <p>I think regardless of whatever their intent/meaning behind the comparison to Twitter was, the result is the same: the pricing will kill third-party apps, just as Twitter did.</p>
  190.  
  191. <p>I said this to Reddit, and they responded that they don't think Twitter's pricing is unreasonable, and that if anything, if Twitter reversed the rule about third-party apps, they would probably increase the prices as well.</p>
  192.  
  193. <p>Just to be clear about how wrong and out of touch that is, without naming names, a formerly very, very high up person at Twitter messaged me on Twitter and said:</p>
  194.  
  195. <p>"The Reddit api moves are crazy. I’m not sure what choices you have but to move to another network. [...] That pricing is designed to prevent apps like yours forevermore."</p>
  196.  
  197. <p>So to be clear, even this person thinks this pricing is unreasonable. I do too.</p>
  198.  
  199. <h2>Have you talked to CEO Steve Huffman about any of this?</h2>
  200.  
  201. <p>I requested a call to talk to Steve about some suggestions I had, his response was "Sorry, no. You can give <em>name-redacted</em> a ping if you want."</p>
  202.  
  203. <p>I've then emailed that person (same person I've been talking to for months) suggestions approximately one week ago about how Apollo could survive this, and I've yet to receive a response.</p>
  204.  
  205. <h2>Do I support the protest/Reddit blackout?</h2>
  206.  
  207. <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>
  208.  
  209. <p>It's been a horrible week, and the kindness Redditors and moderators and communities have shown Apollo and other third-party apps has genuinely made it much more bearable and I am genuinely so appreciative.</p>
  210.  
  211. <p>I am, admittedly, doubtful Reddit wants to listen to folks anymore so I don't see it having an effect. </p>
  212.  
  213. <h2>Your initial post in April sounded quite optimistic. Are you dumb?</h2>
  214.  
  215. <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>
  216.  
  217. <p>(And to be clear, they did indeed say this. They used the word "substantive" and I wanted to make sure we had the same definition of something "having a firm basis in reality and therefore important, meaningful, or considerable")</p>
  218.  
  219. <p>Reddit: "That's exactly right. And I think, thankfully, the word is exactly the right one. It's going to have a firm basis in reality. I also just looked it up. We're going to try to be as transparent as we can."</p>
  220.  
  221. <h2>Reddit claims they've reached out to developers who were bad users of the API, was Apollo contacted?</h2>
  222.  
  223. <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>
  224.  
  225. <p>To be clear, Apollo was never contacted, and I've been told from someone internally that Apollo is indeed not one of the unlabeled API clients. </p>
  226.  
  227. <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>
  228.  
  229. <p>Full email transcript: <a href="https://gist.github.com/christianselig/6c71608cf617d2f881cd2849325494c1">https://gist.github.com/christianselig/6c71608cf617d2f881cd2849325494c1</a></p>
  230.  
  231. <h2>Claims that Apollo has made no attempt to be a good user of the API</h2>
  232.  
  233. <p>On the call with moderators, Steve Huffman said:</p>
  234.  
  235. <p>"I don't use the app, so I'll give you the best answer I can -- he does scraping so that he can deliver notifications faster, but has done NO EFFORT to be a good citizen of the internet."</p>
  236.  
  237. <p>First off, Apollo does no scraping, it's purely through authenticated calls to the API and has checks in place to ensure it stays within Reddit's API rate limits. <a href="https://github.com/christianselig/apollo-backend">I've open sourced the server code to show this</a>.</p>
  238.  
  239. <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>
  240.  
  241. <p>Here's an email of me giving a heads up to Reddit of IP address changes on our server:</p>
  242.  
  243. <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>
  244.  
  245. <p>Me wanting to make sure we were doing everything as best as we could:</p>
  246.  
  247. <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>
  248.  
  249. <p>Me reporting to Reddit that the API has a serious bug in recording rate limits:</p>
  250.  
  251. <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>
  252.  
  253. <p>Me suggesting to Reddit improvements that could help improve efficiency of notification API calls:</p>
  254.  
  255. <p>Me: "So like little stuff like that, where even if there's a streaming client or some way to minimize the calls there, I think it would help us both out enormously."</p>
  256.  
  257. <p>Further, <a href="https://christianselig.com/apollo-end/reddit-dev-meeting-january-invite.png">when making suggestions</a> to your own employees, they themselves have expressed concern about how terrible the public API is:</p>
  258.  
  259. <p>Call on January 26, 2023
  260. 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>
  261.  
  262. <h2>Claims that third-party apps are not interested in talking</h2>
  263.  
  264. <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>
  265.  
  266. <p>I'm genuinely not sure where Steve has got the impression that I don't want to work with him. Despite reaching out multiple times and <strong>him</strong> declining to talk, I've stated multiple times on calls, literally saying the words "I definitely still want to talk".</p>
  267.  
  268. <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."
  269. 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>
  270.  
  271. <p>I've also emailed Steve and the other contact directly stating that I'm interested in talking, and including ideas for how we could come to a solution:</p>
  272.  
  273. <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>
  274.  
  275. <p>I don't know how you can say I'm not interested in talking when you haven't my most recent email in a week. To say it once more, I was very interested in talking.</p>
  276.  
  277. <p>On the other side of things, per the transcript, Steve and the other admin on the call don't even know when the discussions with third-party apps began.</p>
  278.  
  279. <p>Steve: "When did we start talking with them?"
  280. AnAbsurdlyAngryGoose: "What month did you first start?"
  281. Steve: "FlyingLaserTurtles? Do you remember? April or May of this year."
  282. FlyingLaserTurtles: "Maybe late March? But yes."</p>
  283.  
  284. <h2>Claims that Reddit has been talking to developers for months talking about these changes</h2>
  285.  
  286. <p>Steve: "We've been in contact with third party apps for MONTHS, talking about these coming changes."</p>
  287.  
  288. <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>
  289.  
  290. <h2>What about existing subscriptions?</h2>
  291.  
  292. <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>
  293.  
  294. <p>For the curious, refunding all existing subscriptions by my estimates will cost me about $250,000.</p>
  295.  
  296. <h2>A nice send off at WWDC</h2>
  297.  
  298. <p>Apollo got mentioned a few times during Apple's 2023 WWDC keynote, even by Craig Federighi himself, and even during the Vision Pro announcement showing Apollo as one of the existing apps compatible with the headset (I'm sorry I won't be able to see that happen). </p>
  299.  
  300. <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>
  301.  
  302. <h2>Extra icons</h2>
  303.  
  304. <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>
  305.  
  306. <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>
  307.  
  308. <h2>When is Apollo's last day? What will happen?</h2>
  309.  
  310. <p>In order to avoid incurring charges I will delete Apollo's API token on the evening of June 30th PST. Until that point, Apollo <em>should</em> continue to operate as it has, but after that date attempts to connect to the Reddit API will fail. </p>
  311.  
  312. <p>I will put up an explainer in the app prior to that which will go live at that date. I will also provide a tool to export any local data you have in Apollo, such as filters or favorites.</p>
  313.  
  314. <h2>Thank you</h2>
  315.  
  316. <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>
  317.  
  318. <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>
  319.  
  320. <p>André Meidoros worked on the Apollo server component with me for the last two years, and it's been an absolute joy to work with a professional who knows so much on that side of things.</p>
  321.  
  322. <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>
  323.  
  324. <p>Also want to thank everyone at Apple who have gone out of their way to be incredibly kind here (I don't know if I'm allowed to name names but you know who you are).</p>
  325.  
  326. <h2>I'll be fine</h2>
  327.  
  328. <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>
  329.  
  330. <p>Honestly. Apollo had an incredible run, I met the coolest people, by my last count talked with folks over 15,000 times in our subreddit about Apollo, and raised over $80,000 for my local animal shelter through Apollo. I feel incredibly fortunate. </p>
  331.  
  332. <p>I think I'll rewatch Ted Lasso though.</p>
  333.  
  334. <h2>Supporting my work</h2>
  335.  
  336. <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>
  337.  
  338. <h2>Media</h2>
  339.  
  340. <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>
  341.  
  342. <h2>AMA</h2>
  343.  
  344. <p>I think I covered everything, but if there's any questions feel free to ask and I'll do my best to answer!</p>
  345.  
  346. <p>In the event that this post is taken down or you want to link somewhere else, it's also available at <a href="https://apolloapp.io">https://apolloapp.io</a></p>
  347.  
  348. <p>Thanks for everything over these last 8 years,</p>
  349.  
  350. <p>- Christian</p>
  351. </div>
  352. </div>