[Rant] I can’t stand developing for Safari anymore

The Frustrations of Developing for Safari: A Perspective from Web Professionals

In recent years, the landscape of web development has evolved rapidly, with browsers such as Chrome and Firefox embracing modern standards and APIs. However, Safari, Apple’s default browser for macOS and iOS devices, has often lagged behind in supporting these advancements. This disparity has caused significant challenges for developers striving to create seamless, feature-rich web experiences across all platforms.

Limited Support for Modern Web APIs

One of the primary concerns among developers is Safariโ€™s inconsistent adoption of modern web APIs. Features like Progressive Web Apps (PWAs), streams, and advanced service worker capabilities are vital for delivering performant, offline-capable, and engaging web applications. Unfortunately, Appleโ€™s approach often appears dismissive towards these standards, resulting in a lack of support that hampers development and user experience.

This reluctance to integrate modern APIs can be attributed to Apple’s strategic focus on maintaining control over its ecosystem rather than embracing open web innovations. For web developers, this means often having to implement workarounds or accept degraded functionality for Safari users, which complicates project timelines and quality assurance.

On iOS, Browsers Are Essentially Safari in Disguise

A significant pain point arises from the architecture of browsers on iOS devices. Unlike on other platforms, iOS mandates that all browsers must use Apple’s WebKit rendering engine, effectively making every third-party browser a skin over Safari. While browsers like Chrome or Firefox are available on iOS, they do not differ in rendering engine or underlying capabilities.

This restriction was publicly acknowledged during legal proceedings such as the Epic Games vs. Apple case, where Apple defended their walled-garden approach by suggesting that developers could simply build web apps instead of native ones to avoid App Store fees. However, in practice, these limitations hinder the development of fully featured web applications and diminish the user experience.

Persistent Bugs and Unreliable API Implementations

Another ongoing frustration is Safariโ€™s handling of APIs once they are implemented. Even when a feature is added, it often arrives riddled with bugs or inconsistencies. Developers frequently encounter scenarios where an API functions as intended in other browsers but remains broken, incomplete, or unstable in Safari.

Examples such as Service Workers and IndexedDB exemplify this pattern โ€” critical components for offline support, caching, and data storage โ€” that remain unreliable or poorly maintained in Safari. The inconsistency and slow pace of bug fixes can impede development and cause frustrations when striving for cross-browser compatibility.


Leave a Reply

Your email address will not be published. Required fields are marked *