Which browsers should an e-commerce platform support?
What browsers should a modern e-commerce platform be able to support?
In developing an e-commerce platform for an international customer base, various architectural questions and challenges present themselves. In order to overcome them, certain decisions need to be made early in the course of a project to form a foundation on which to build.
One of these questions is which browsers the platform is to support. It's important to understand the implications that this decision has for the structure and technical implementation of the platform.
In this article, we'll examine various aspects to be considered in coming to an answer to this question. In closing, we list the browsers we decided to include in our own project.
What follows is a series of arguments that lead to the following decision: To make a future-proof platform, support should be provided only for self-updating, "evergreen" browsers. There's no need to support deprecated or obsolete browsers (in particular, IE11).
The browser use data that we looked at focuses mainly on the United States, since that is where the primary target market lies for the platform we're building. Data available here.
In everyday use – and for our platform – mobile use is the primary concern. Therefore, we need to take into consideration the use of mobile browsers in particular. Data available here.
As the default browsers on iOS and Android devices, Safari and Chrome lead by a large margin. The Samsung Internet Browser is the only other one of note in the data collected, with a share of about 6 percent in the USA.
All other mobile browsers have a share of less than 1 percent. Thus, economically speaking, it makes little sense to invest time and resources in support for these browsers. Automated code adjustments can be used to provide support for them to a certain extent. Beyond that, however, they are not worth considering.
Considering not only mobile devices, but all terminal devices, Google Chrome and Safari (iOS) remain the predominant browsers. About 80 percent of users in the USA use one of these two browsers. The remaining 20 percent use various smaller browsers with low shares, including Microsoft Edge and Internet Explorer 11, which have a share of nearly 5 percent.
In the global analysis, the numbers look similar, with Chrome and Safari dominating the market. In addition, there are numerous other self-updating browsers in the range below 5 percent. Internet Explorer is used by about 2 percent of users.
Browsers can differ substantially in the features and capabilities they provide. The foundations of our front-end technology take some of these differences into consideration. Tools such as Babel convert modern browser features into code that runs in older browsers.
This provides older browsers with code that they can interpret. However, newer browsers also receive this code, even though it was optimized for the older browsers. This means that the benefits of new browser features can't be used, leading to sub-optimal performance. In other words, the browser "herd" moves with the speed of its slowest, least feature-rich member.
Unfortunately, this automated solution does not work for all of the new features available to us when building a new platform. As a result, we may need to do without certain features of newer browsers because they are not supported by the old ones.
Most of the browsers used today are self-updating, meaning that whenever the provider publishes a new version, the browser updates itself next time it is restarted. This is the case for Google Chrome, Firefox, Opera, Microsoft Edge and various less common browsers. Since Safari receives updates as part of Apple's system updates, it almost qualifies as a self-updating browser. New functions and features are constantly being added to these browsers.
Very old browsers as well as Internet Explorer must be updated manually by the user or replaced with a new browser in order to access features that other browsers have offered for years already. Old versions of self-updating browsers disappear fairly quickly. Those that do not update themselves usually remain in use until the user switches to a new operating system version or replaces them with a modern browser.
The amount of resources and effort required to create a website depends on the list of browsers it is to support.
- We test the website in all supported browsers.
- We write code that works in those browsers.
- We fix errors that arise in connection with those browsers.
The resources and effort that go into supporting a particular browser ought to be proportionate to its share of users. However, in our experience, usually the opposite is the case. The older and/or less prevalent a browser is, the more time it demands for support and troubleshooting.
This is only worth it if the users of such a browser generate enough sales on the platform to justify the development time required. As a rule, this is not the case.
In addition, supporting older browsers by optimizing code to work in them negatively affects the platform's further development. There's a reason that new features are introduced to browsers, namely to make things work easier and faster.
This opens up new ways to structure a project and its basic architecture. Obviously, once there's no more need to support older browsers, this architecture can be redesigned in a more modern fashion. However, this involves rewriting large parts of the platform, which requires time and money to be spent on updating rather than on developing new features.
Naturally, restricting support to modern browsers poses business risks, too. For one, users with older browsers will have problems using the platform. If the platform needs to be retrofitted for compatibility with older browsers, then the basic functionality can be added – provided it makes economic sense.
Additionally, regulatory provisions must be adhered to. This aspect relates in particular to topics such as accessibility, which we already take into consideration when building a platform.
With consideration for the points mentioned above, we've decided for the first time to support self-updating browsers only. We will develop a future-proof mobile-first platform intended almost exclusively for mobile use. Because of this, we ought to be able to readily integrate new technical developments into our platform. Furthermore, we should avoid spending time on older browsers that limit the effectiveness of new browsers.
Currently, the project supports the following browsers:
- Chrome for Android 75
- iOS Safari 12 - 9
- Samsung Internet 9.2
- Chrome 75 & 74
- Edge 18 & 17
- Firefox 67
- Safari 12.1