2020-03-25

First party storage deletion in Safari

The new version of WebKit, Safari’s browser engine, is taking a strong stance against tracking. While the headline there is third-party cookie blocking, the potentially bigger news is the “7-Day Cap on All Script-Writeable Storage”. Unless the user accesses the site, all of their LocalStorage and IndexedDB data is deleted after seven days.

If you’re trying to make a rich webapp that stores data locally for purposes other than just caching, this makes things a lot harder. You now have to build apps assuming that the user’s storage is going to get blown away, which is very different from the environment that native apps live in.

In order for webapps to become first class citizens, they need some kind of persistent storage that users can have confidence in. Perhaps there could be a compromise put in place in which sites that have no third-party resources at all can have stable persistent storage.

On Twitter, Andrew Sutherland linked to StorageManager.persist as an API that requires user permission. According to MDN and caniuse, this is not supported in Safari, which is a drag.

A comment on HN, which I don’t have any verification of, says that apps added to the home screen are not affected by this. If so, I’m actually okay with this situation. Adding to the home screen is a very affirmative “I want this app” kind of action.

Update to add: the original WebKit post now includes mention of how home screen apps “have their own counter”.

ION distributed RTC system in Go and Flutter

ION looks impressive, assuming it works as well as it says on the tin. Easy to self-host and run your own conference calls. In practice, these systems vary a lot in quality.

Face Masks: Much More Than You Wanted To Know

Wondering if face masks work? Scott Alexander digs in