What Apple gives you for $100 as a Safari Extension Developer — and why Reddit Enhancement Suite may cease support for Safari

This post has been a long time coming, and is honestly months if not a year overdue.

TL;DR (though I’d prefer people read): it’s a ton more work to support Safari than it is to support the rest of the browsers because of its various quirks. Despite that, Safari users make up a minuscule percentage of our users. Apple makes it even less appealing to keep doing all that extra work by not only charging $100 but having a horrendously mismanaged review process.

For the uninitiated, browser extensions are simple tools that enhance your web browsing experience in one way or another. Most of them add a button in your toolbar that performs some common function, or add some javascript and/or CSS to a page to enhance or modify the functionality and appearance of the page.

I’m the original creator of Reddit Enhancement Suite — an extension that makes functional changes to how Reddit works to, well, make time-wasting more efficient. While it started out only working on Firefox, it has since expanded to support Firefox, Chrome, Safari, Opera and Microsoft Edge.

Maintaining a browser extension that works in 5 browsers is no small task, especially with tech support requests coming from millions of users on different platforms. Doing it for free likely seems unfathomable to most people. But would you pay $100 per year just to do it?

Changes from Apple

A little over a year ago, Apple announced that Safari extension developers would no longer be able to develop extensions for free. Instead, they had to pay the same $100 per year that iOS and MacOS developers do. The benefit, they alleged, is that you’d get the tools and support to develop iOS and MacOS apps in addition to Safari Extension development. According to them, this “simplified” their program.

The reality is that if your only interest is developing browser extensions, you now have to pay $100 for something that you could previously do for free, with no real usable benefit or improvement to the system. In fact, it became materially worse.

It’s important to note that while you can still publish browser extensions without paying the $100 fee, you cannot have them listed on the Safari Extension Gallery, and they will not auto update when you release new versions. This last bit about auto updating makes it untenable for an extension as large as RES. Tech support is already hard for 5 different browsers on a myriad of operating systems — having thousands of Safari users on older versions of the extension because it won’t auto update would make for a maintenance nightmare.

A few important things to know about the Safari Extension Gallery, which Extension Developers have had to live with for the first year (see info on yet another change to the App Store later in this article):

  • It provides no way to charge for your extension, so while it costs $100 per year to publish your extension, there’s no way for you to recoup that cost unless you’re injecting ads into your extension or making money some other way
  • It’s merely a listing on a webpage — every other browser’s gallery actually provides detailed information (such as screen shots, etc) on the extension. Safari’s gallery is just a page that essentially allows people to install the extension.

Apple’s review process for extensions is disorganized, arduous and quite frankly insulting

We submitted Reddit Enhancement Suite multiple times, and it often took weeks to get a response — if we got one at all. Sometimes, we just never got any response, and RES never showed up in the gallery.

The first time RES was rejected, we waited several weeks only to be rejected for having no license to use the word “reddit”, except we did have a license, so I responded to them and provided a copy of the license via email. I heard back a week later that we would be “placed back into review.”

We waited a full two weeks from the initial rejection, only to be rejected again because it didn’t contain a specific icon — a situation that would have been automatically and immediately detected by every other extension gallery, because they run a quick scan on the file uploaded to them during the submission process.

All of the browsers’ extension galleries require that you submit your extension for review. Each of them, except Safari, has some automated processes to ensure you’ve checked all the right boxes and included all the right files and data. The fact that we waited two weeks to be notified of such a simple omission, and one that wasn’t noted in the first rejection, is pretty awful.

So, we submitted yet again, once again providing documentation of our license to use the term “reddit” in the name, just in case. What happens? We wait a few weeks and are once again rejected for using the term “reddit” in the name of our extension! I reply explaining the situation, and once again get a reply saying the extension will be “placed back into review.”

From the errant rejection, which happened October 9th, 2016, I waited 5 weeks until November 16th to email again asking what was up with the review process, because RES still wasn’t published on the Safari Extension Gallery. I wrote Apple on November 16th asking what was going on with the review and reiterating that we had a license to use the term (attaching it in that email as well) — only to receive a response on November 18th saying “Your extension, Reddit Enhancement Suite, is still undergoing review. You will receive an email update once the review has been completed.”

I never received an email.

Turns out, however, Apple did eventually publish the extension — they just never told us. We don’t know when it happened, but it was likely around or after Thanksgiving, because we’d checked a few times since receiving that last email saying we were still under review.

All this for just $100 per year.

Maintenance of Safari Extensions is also about to get even worse

All four of the other browsers use effectively the same APIs — Safari is potentially going to change that in some ugly ways.

To develop a Safari extension may eventually require Xcode, rather than whatever editor a developer prefers to use. Furthermore, it will no longer just be Javascript, CSS and HTML — it’ll require the use of either Objective C or Swift for at least part of the application.

The work to convert a Safari extension is not monumental, but it’s hardly trivial, especially if an extension makes frequent use of the “global” or “background” page.

The only plus side to this is that extension developers will publish on the Mac App Store, which would allow them to charge money and recoup that $100 per year fee. However, the downsides are many:

  • The $100 per year fee, which doesn’t have to be paid to publish to any other browser.
  • The review process, as outlined above, is likely no better. There aren’t a lot of happy stories about the Mac App Store review process.
  • Maintaining a codebase for a cross-browser extension has become far less of a challenge over time between Chrome, Firefox, Opera and Edge — while Safari is now diverging further away, meaning significantly more overhead.
  • There is even less documentation around creating app extensions than there was around regular Safari browser extensions.

Conclusion

For the reasons outlined above, the Reddit Enhancement Suite dev team has to evaluate whether or not to continue supporting Safari. To do so will require spending another $100 to renew its license, and undergoing considerable work to convert the current extension to an App extension. That work includes not only the act of making the conversion, but also maintaining and testing it.

It will also mean additional work every time the team publishes, since Xcode will need to be used, which of course requires a Mac — not something every RES contributor has or can afford. This equates to a great number of additional hours for each release, not to mention more testing, etc.

The team essentially has two options:

  • Discontinue Safari support because it’s not worth the effort outlined above (not to mention the extremely poor support from Apple)
  • Keep working on Safari, at considerable expense in both time and some money, but charge for it on the app store to at least recoup the $100 and ideally make it worth the extra time and effort

We’re not entirely sure what we’ll do just yet, we’re weighing these options because it’s not an easy choice. We’re certainly listening to the community’s thoughts on this, but we’re quite disappointed in Apple’s treatment of Safari Extension Developers.