For example one use case is collection of news. My app looks almost like a typical RSS feed reader, except that article content is full and interactive. I can inline stupid image galleries that break article flow, I can convert custom video players into a simple tag, I can drop what I don't care for. I can switch between tor/non-tor mode in a secure way that doesn't leak anything and is probably more secure than torbrowser.
I have direct access to any OS programs, so I can easily open m3u8 videos in mpv player on one click or using a keyboard shortcut, or I can download streaming videos locally and convert them to mp4 on the fly, save useful content of the pages to the database, including relevant images, etc.
All JS code is controlled by me, web servers serve me only as data sources.
What is key to make this fun and useful is structuring the app as a unified UI for multiple data sources and to be able to define data sources quickly. Fortunately ES6 generators can be used in a way that makes fetching and transforming data without the need for callbacks, or promises very easy and clear. Adding a new source is usually a matter of minutes.
It is also nice that when improving the UI, I get a new feature for all the websites that I frequent at once.
It allows me to consume content the way I want, without much exposure to tracking. All the website gets from me is an access_log entry, no cookies, nothing.
I'd say I'm quite ahead of the "war" between users and advertising networks.