{"id":41684,"date":"2024-01-05T15:04:55","date_gmt":"2024-01-05T20:04:55","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=41684"},"modified":"2024-01-10T15:23:41","modified_gmt":"2024-01-10T20:23:41","slug":"hey-calendar-rejected-from-the-app-store","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2024\/01\/05\/hey-calendar-rejected-from-the-app-store\/","title":{"rendered":"HEY Calendar Rejected From the App Store"},"content":{"rendered":"<p><a href=\"https:\/\/world.hey.com\/dhh\/new-year-new-calendar-58d70855\">David Heinemeier Hansson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/world.hey.com\/dhh\/new-year-new-calendar-58d70855\">\n<p>We&rsquo;ve spent the last year tackling the number one request for our email service HEY.com: <a href=\"https:\/\/www.youtube.com\/watch?v=SztU4232u_o\">Adding a calendar!<\/a><\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/dhh\/status\/1742638740525187506\">David Heinemeier Hansson<\/a> (<a href=\"https:\/\/news.ycombinator.com\/item?id=38883723\">Hacker News<\/a>, <a href=\"https:\/\/9to5mac.com\/2024\/01\/05\/hey-calendar-apple\/\">9to5Mac<\/a>):<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/dhh\/status\/1742638740525187506\"><p>Apple didn&rsquo;t even bother to give us a reason this time! I mean, at least they&rsquo;re not saying it&rsquo;s definitive (yet??), but it&rsquo;s just so fucking tiring to deal with this bullshit. This isn&rsquo;t even a new service! It&rsquo;s a FREE addition to the existing hey.com you let in!<\/p><p>All I wanted for Xmas this year was for Apple to stop fucking with developers, trying to turn them upside down at every junction to shake them down. I love Apple hardware, I hella respect Apple Safari, but this monopoly App Store bullshit has got to stop.<\/p><p>[&#8230;]<\/p><p>This is why I&rsquo;m pushing so hard for PWAs! We&rsquo;re betting all of <a href=\"https:\/\/once.com\">once.com<\/a> on that strategy. No native apps, just the very best PWAs you can possibly find. It&rsquo;s why I have PWA tech as my #1 objective for Rails 8. We need to collectively break free from this bullshit.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/dhh\/status\/1743341929675493806\">David Heinemeier Hansson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/dhh\/status\/1743341929675493806\"><p>Apple just called to let us know they&rsquo;re rejecting the HEY Calendar app from the App Store (in current form). Same bullying tactics as last time: Push delicate rejections to a call with a first-name-only person who&rsquo;ll softly inform you it&rsquo;s your wallet or your kneecaps.<\/p><p>Since it&rsquo;s clear we&rsquo;re never going to pay them the extortionate 30% ransom, they&rsquo;re back to the bullshit about &ldquo;the app doesn&rsquo;t do anything when you download it&rdquo;. Despite the fact that after last time, they specifically carved out HEY in App Store Review Guidelines 3.1.3 (f)!<\/p><\/blockquote>\n\n<p>That <a href=\"https:\/\/developer.apple.com\/app-store\/review\/guidelines\/\">guideline<\/a> says:<\/p>\n\n<blockquote cite=\"https:\/\/developer.apple.com\/app-store\/review\/guidelines\/\"><p>3.1.3(f) Free Stand-alone Apps: Free apps acting as a stand-alone companion to a paid web based tool (eg. VOIP, Cloud Storage, Email Services, Web Hosting) do not need to use in-app purchase, provided there is no purchasing inside the app, or calls to action for purchase outside of the app.<\/p><\/blockquote>\n\n<p>The plain reading of this is that the items in parentheses are examples, not an exhaustive list.<\/p>\n\n<blockquote cite=\"https:\/\/twitter.com\/dhh\/status\/1743341929675493806\"><p>But the whole &ldquo;the app doesn&rsquo;t do anything&rdquo; isn&rsquo;t even in the formal guidelines!<\/p>\n<\/blockquote>\n<p>And, anyway, I thought they satisfied that last time by offering free, temporary accounts.<\/p>\n\n<blockquote cite=\"https:\/\/twitter.com\/dhh\/status\/1743341929675493806\">\n<p>Jason asked them on the phone: &ldquo;If we just put all these features in the existing app, is that ok?&rdquo;. Answer: Yes. So Apple thinks separate apps for iCloud is better for users, but doesn&rsquo;t want competing services like HEY to be able to do the same? What? Why?!<\/p><p>And why do huge companies like Salesforce, JPMorgan, Netflix or Google get to have apps &ldquo;that doesn&rsquo;t do anything&rdquo;, but if you&rsquo;re a small software maker like us, you can&rsquo;t?<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/drunknbass\/status\/1742699626141192654\">drunknbass<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/drunknbass\/status\/1742699626141192654\">\n<p>I built a system that tracked the app reviewers test sessions because we got tired of playing telephone with app review being of no help. Could watch what they were doing and infer what they actually wanted.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/DougDiskin\/status\/1742681174613315696\">Douglas Fischer<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/DougDiskin\/status\/1742681174613315696\"><p>Sometimes I think it must be easier to handle a room full of teenagers then chat with this apple team. They can&rsquo;t handle even very basic conversations where they clearly are wrong.<\/p><p>I can remember a lot of times when I pointed mistakes in their own screenshots. They even sent me pictures of another app to justify rejecting my app.<\/p><p>Probably the worst part of being on Apple platform.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/aught66\/status\/1742650484324958411\">Lon Baker<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/aught66\/status\/1742650484324958411\"><p>This is why all my future products will be PWA first.<\/p><p>I&rsquo;ve dealt with the Apple BS for a decade, in minor ways compared to this.<\/p><p>It is why I have an Android phone next to my iPhone &mdash; never know when an app is held hostage or worse yanked from the AppStore.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/pokornyjirka\/status\/1742652512287547448\">Jiri<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/pokornyjirka\/status\/1742652512287547448\">\n<p>It&rsquo;s as if a great OS was held hostage by its creators compared to a terrible OS being super-friendly.<\/p>\n<\/blockquote>\n<p>I&rsquo;m not sure that Android is terrible or that Google is super-friendly, but it does seem like Apple is holding back its platforms.<\/p>\n\n<p><a href=\"https:\/\/infrequently.org\/2024\/01\/the-web-is-the-app-store\/\">Alex Russell<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=38847719\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/infrequently.org\/2024\/01\/the-web-is-the-app-store\/\">\n<p>This is the backdrop to the biggest app store story nobody is writing about: on pain of <a href=\"https:\/\/ec.europa.eu\/commission\/presscorner\/detail\/en\/qanda_20_2349#:~:text=In%20case%20a,systemic%20non%2Dcompliance.\">steep fines,<\/a> gatekeepers are opening up to competing browsers. This, in turn, will enable competitors to replace app stores with directories of <a href=\"\/2015\/06\/progressive-apps-escaping-tabs-without-losing-our-soul\/\">Progressive Web Apps<\/a>. Capable browsers that <a href=\"https:\/\/patrickbrosset.com\/articles\/2023-09-26-my-first-tpac-conference\/#:~:text=The%20Web%20Applications,was%20also%20reviewed.\">expose<\/a> web app installation and powerful features to developers can kickstart app portability, breaking open the mobile duopoly.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/02\/21\/web-push-for-web-apps-on-ios-and-ipados\/\">Web Push for Web Apps on iOS and iPadOS<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/02\/07\/the-danger-of-sideloading-chromium\/\">The Danger of Sideloading Chromium<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/01\/12\/catching-native-apps\/\">Catching Native Apps<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2021\/06\/03\/web-apps-in-epic-v-apple\/\">Web Apps in Epic v. Apple<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/06\/25\/hey-approved-with-trial\/\">HEY Approved With Trial<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2020\/06\/16\/hey-rejected-from-the-app-store\/\">HEY Rejected From the App Store<\/a><\/li>\n<\/ul>\n\n<p id=\"hey-calendar-rejected-from-the-app-store-update-2024-01-09\">Update (2024-01-09): <a href=\"https:\/\/www.theverge.com\/2024\/1\/5\/24027283\/apple-hey-rejection-calendar-app-basecamp-david-heinemeier-hansson\">Amrita Khalid<\/a> (<a href=\"https:\/\/apple.slashdot.org\/story\/24\/01\/06\/0055233\/apple-revives-old-fight-with-hey-email-app\">Slashdot<\/a>):<\/p>\n<blockquote cite=\"https:\/\/www.theverge.com\/2024\/1\/5\/24027283\/apple-hey-rejection-calendar-app-basecamp-david-heinemeier-hansson\">\n<p>Following the [2020] saga with Hey, Apple made a carve-out to its App Store rules that stated that free companion apps to certain types of paid web services were<em> not<\/em> required to have an in-app payment mechanism.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/world.hey.com\/dhh\/apple-rejects-the-hey-calendar-from-their-app-store-4316dc03\">David Heinemeier Hansson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/world.hey.com\/dhh\/apple-rejects-the-hey-calendar-from-their-app-store-4316dc03\">\n<p>After spending 19 days to review our submission, causing us to miss a long-planned January 2nd launch date, Apple rejected our stand-alone free companion app &ldquo;because it doesn&rsquo;t do anything&rdquo;. That is because users are required to login with an existing account to use the functionality.<\/p>\n<p>This is a ridiculous charge. The App Store is filled with high-profile applications that require an existing service account and simply presents a login screen when first launched. Here are just four[&#8230;]<\/p>\n<\/blockquote>\n<p>Most notably, Google Calendar seems to do exactly what Hey was rejected for.<\/p>\n\n<p><a href=\"https:\/\/twitter.com\/jasonfried\/status\/1743421673871929723\">Jason Fried<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/jasonfried\/status\/1743421673871929723\">\n<p>When Apple forces companies to offer In App Purchases in order to be on their platform, they also dictate the limits to which you can help your customer.<\/p>\n<p>[&#8230;]<\/p>\n<p>Let&rsquo;s say someone signs up for HEY on an iPhone, pays with Apple&rsquo;s IAP system, and then decides to switch to an Android phone. Billing is entirely messed up now. They can&rsquo;t update their credit card through the HEY app on Android because their billing info is stored with Apple. And we can&rsquo;t help them. Who wins there? Apple wins. This creates immense lock-in when all your service subscriptions are tied to a single platform. If you change your phone, do you now also have to change your email address?<\/p>\n<p>[&#8230;]<\/p>\n<p>When you think about the big picture of a complete customer relationship, in app purchases are one of the most hostile customer experiences I&rsquo;ve seen. Sure, the purchase part is relatively easy (most modern purchase flows are these days), but that&rsquo;s where Apple stops. We end up with our hands tied behind our backs. Unable to help customers to our own high standards because Apple won&rsquo;t let me, or my employees, do our jobs.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/world.hey.com\/dhh\/we-ve-resubmitted-the-hey-calendar-app-to-apple-57240fbb\">David Heinemeier Hansson<\/a> (<a href=\"https:\/\/twitter.com\/dhh\/status\/1744422923182755953\">tweet<\/a>):<\/p>\n<blockquote cite=\"https:\/\/world.hey.com\/dhh\/we-ve-resubmitted-the-hey-calendar-app-to-apple-57240fbb\">\n<p>So here&rsquo;s what we did to comply with the &ldquo;it has to do something&rdquo; bullshit. We created a dedicated tribute to Apple&rsquo;s History right into the app, which you can use if you don&rsquo;t have an account with the HEY email service.<\/p>\n<p>[&#8230;]<\/p>\n<p>So now the app &ldquo;does something&rdquo; when you download it. Despite the fact that this requirement exists nowhere in the Apple App Store Guidelines. Despite the fact that the store is chockfull of apps that also doesn&rsquo;t &ldquo;do anything&rdquo; without a login.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/daringfireball.net\/2024\/01\/heyja_vu_hey_cal\">John Gruber<\/a>:<\/p>\n<blockquote cite=\"https:\/\/daringfireball.net\/2024\/01\/heyja_vu_hey_cal\">\n<p>It seems bonkers to me that after <a href=\"https:\/\/daringfireball.net\/linked\/2020\/06\/16\/hey-iap-app-store-dispute\">all the bad publicity that befell Apple in June 2020<\/a> over Apple&rsquo;s rejection of the Hey email app, that they&rsquo;d veto a Hey companion app&#x2009;&mdash;&#x2009;that requires the exact same type of account as Hey email&#x2009;&mdash;&#x2009;for the exact same reasons. They should have just let it through, for the risk of bad publicity alone.<\/p>\n<p>[&#8230;]<\/p>\n<p>The stakes for Apple are much higher today than they were in 2020. The last thing Apple wants is a news narrative along the lines of &ldquo;<em>More Bullshit From Apple Trying to Squeeze Developers Into Giving Them a Cut of Revenue When the Developers Simply Want to Sell Subscriptions Directly to Customers Over the Web<\/em>&rdquo;. But by rejecting Hey Calendar, they seem to be <em>inviting<\/em> such a narrative.<\/p>\n<p>I just don&rsquo;t get it. Apple has nothing to gain by this&#x2009;&mdash;&#x2009;<em>nothing<\/em>, not a cent&#x2009;&mdash;&#x2009;but a lot to lose.<\/p>\n<\/blockquote>\n<p>They just can&rsquo;t help themselves. Meanwhile, I just received an e-mail from Apple:<\/p>\n<blockquote><p>Apple Vision Pro will have a brand-new App Store, where people can discover and download all the incredible apps available for visionOS. Learn everything you need to know to prepare and submit your visionOS apps to the App Store.<\/p>\n<p>We can&rsquo;t wait to see what you have in store.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/dhh\/status\/1744745276932604413\">David Heinemeier Hansson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/dhh\/status\/1744745276932604413\"><p>Apple approved the HEY Calendar!! It&rsquo;s now available for download in the @appstore. Ridiculous it needed this level of awareness\/pressure, but I&rsquo;m so happy for our iOS team to see their work through the weekend pay off in full.<\/p><p>[&#8230;]<\/p><p>Above all, I just wish Apple would stop acting like this. Codify what it actually takes to get approved in the App Store Guidelines. If login-wall apps must have a demo mode or whatever, say so! Then enforce it equally and consistently! Don&rsquo;t make us guess and grief like this.<\/p><p>And, yes, I also do wish that \n@TheJusticeDept\n get on with their case, so we can have the courts clarify what should be done with about this monopoly power.<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2024\/01\/08\/apple-vision-pro-available-february-2\/\">Apple Vision Pro Available February 2<\/a><\/li>\n<\/ul>\n\n<p id=\"hey-calendar-rejected-from-the-app-store-update-2024-01-10\">Update (2024-01-10): <a href=\"https:\/\/world.hey.com\/dhh\/apple-approves-the-hey-calendar-c76ebd9c\">David Heinemeier Hansson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/world.hey.com\/dhh\/apple-approves-the-hey-calendar-c76ebd9c\"><p>I&rsquo;ll admit it was a bit cheeky to make our new <a href=\"https:\/\/www.youtube.com\/watch?v=SztU4232u_o\">HEY Calendar<\/a> app &ldquo;do something&rdquo; by <a href=\"https:\/\/world.hey.com\/dhh\/we-ve-resubmitted-the-hey-calendar-app-to-apple-57240fbb\">including Apple&rsquo;s own history as a preview<\/a> for people who don&rsquo;t have an account. And I didn&rsquo;t give the gambit better than 30% odds of succeeding, but lo and behold, it did!<\/p><p>[&#8230;]<\/p><p>There&rsquo;ll always be a legion of Apple fans to defend every abusive tactic the company employs, but there absolutely is also a huge tribe of developers who recognize monopoly bullshit when they see it. The loud, impressive support from this group really helped us push through this second round of nonsense.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/512pixels.net\/2024\/01\/basecamp-resubmits-its-calendar-app-includes-dates-in-apple-history-to-get-past-app-review\/\">Stephen Hackett<\/a>:<\/p>\n<blockquote cite=\"https:\/\/512pixels.net\/2024\/01\/basecamp-resubmits-its-calendar-app-includes-dates-in-apple-history-to-get-past-app-review\/\"><p>For <a href=\"https:\/\/www.kickstarter.com\/projects\/ismh\/2022-apple-hardware-calendar\">each<\/a> of <a href=\"https:\/\/www.kickstarter.com\/projects\/ismh\/2023-apple-history-calendar\">my<\/a> three <a href=\"https:\/\/www.kickstarter.com\/projects\/ismh\/2024-apple-history-wall-calendar\">Kickstarters<\/a>, I&rsquo;ve included digital versions of the highlighted dates for people to import into their calendar apps.<\/p><p>[&#8230;]<\/p><p>To be clear, from these screenshots, it doesn&rsquo;t seem like HEY copied my direct work or research, and I only came across this after someone sent me a link to DHH&rsquo;s tweets.<\/p><p>[&#8230;]<\/p><p>It&rsquo;s a real bummer to feel like I&rsquo;ve been ripped off by a much bigger company, seeing them pitch something I&rsquo;ve worked hard on as a free feature in their app. There&rsquo;s some irony there.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/schwarztech.net\/snippets\/being-controversial-for-the-sake-of-it\">Eric Schwarz<\/a>:<\/p>\n<blockquote cite=\"https:\/\/schwarztech.net\/snippets\/being-controversial-for-the-sake-of-it\">\n<p>Apple isn&rsquo;t blameless in this, with a famously opaque and confusing App Store review process. However, Hansson should have learned that an app has to do <em>something<\/em> when you&rsquo;re not logged in the <em>first time<\/em> he tangled with Apple over Hey&rsquo;s email client.<\/p>\n<\/blockquote>\n\n<p>There&rsquo;s no reason he should have learned that, because (1) the so-called &ldquo;do something&rdquo; rule is not actually written in the guidelines, and (2) after the previous tangle, Apple revised the guidelines to specifically permit free clients for Web services like HEY Calendar.<\/p>\n\n<p><a href=\"https:\/\/pxlnv.com\/linklog\/dhh-hey-calendar\/\">Nick Heer<\/a>:<\/p>\n<blockquote cite=\"https:\/\/pxlnv.com\/linklog\/dhh-hey-calendar\/\">\n<p>That is the only logical explanation. After all, what rule would permit a free frontend for a paid email service, but not for a calendar?<\/p>\n<\/blockquote>\n\n<p>Now we&rsquo;re back in a muddle because Apple seemingly relaxed and clarified the guidelines but is actually still using a hidden rulebook.<\/p>","protected":false},"excerpt":{"rendered":"<p>David Heinemeier Hansson: We&rsquo;ve spent the last year tackling the number one request for our email service HEY.com: Adding a calendar! David Heinemeier Hansson (Hacker News, 9to5Mac): Apple didn&rsquo;t even bother to give us a reason this time! I mean, at least they&rsquo;re not saying it&rsquo;s definitive (yet??), but it&rsquo;s just so fucking tiring to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2024-01-05T20:04:58Z","apple_news_api_id":"4e08f5a8-61b4-4f1b-ae7b-d7da0c6ccbe3","apple_news_api_modified_at":"2024-01-10T20:23:44Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABg==","apple_news_api_share_url":"https:\/\/apple.news\/ATgj1qGG0Txuue9faDGzL4w","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[91,130,193,1954,31,2321,26,308,96],"class_list":["post-41684","post","type-post","status-publish","format-standard","hentry","category-technology","tag-appstore","tag-rejection","tag-calendar","tag-hey","tag-ios","tag-ios-17","tag-iosapp","tag-rails","tag-web"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/41684","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=41684"}],"version-history":[{"count":8,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/41684\/revisions"}],"predecessor-version":[{"id":41731,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/41684\/revisions\/41731"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=41684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=41684"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=41684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}