Browser Extensions are Underexplored
Almost all of (knowledge) work is happening inside a browser and most apps are becoming web apps 1. Operating system functions are largely off-shored to browsers.
Browser Extensions have access and context to the interactions in the browser. They can access any entity (tweets, profiles, articles) and event (liking, sending messages, looking at an image) that a browser enables. That’s most of digital life. There’s many ideas that only work with having that context (eg. claim verification, flagging fake news) and so it seems like the next killer application should be a browser (extension).
So, why aren’t we seeing more innovative and ambitious browser extensions?
My null hypothesis is usually that people don’t have ideas. Also, developing a complex browser extensions, from personal experience, is quite annoying:
- The development experience is fragmented and hostile. For example. state can be scattered between content-, background-, popup scripts, storage APIs and a backend.
- The feedback loop from changing code to seeing changes is much slower.
- I haven’t seen anybody figure out how to actually do software testing for browser extensions effectively. There’s no end-2-end testing and no half-way sane setup for integration testing.
- Without solid automated tests while you develop, it gets increasingly masochistic and asinine to add features.
- That’s one reason why the interfaces of browser extensions are staying simplistic
- The Google Playstore controls distribution. Safari and Firefox can’t get it together. Pushing a change can take a week until the Playstore allows or rejects it.
- Google likes to make arbitrary changes to the API and security model
- This makes it fragile to base a business on a browser extension
That’s a few pointers for why there isn’t much happening.
I still think browser extensions are massively underrated and under-explored.
(1) I haven’t seen good arguments for why this won’t happen, especially with WASM and most of developer tooling focusing on web stacks