Supporting old browsers #4701
Replies: 3 comments 1 reply
-
Here's another angle: is this a personal issue or a team/org issue?
Overall I guess I'm leaning toward to not worry about this for now but I do agree a simple pop-up is safe-to-try. |
Beta Was this translation helpful? Give feedback.
-
Not sure what counts as an 'older browser' in this case, but wanted to share some data, in case it's helpful: what browser & version our users are using when visiting the app 🔒 |
Beta Was this translation helpful? Give feedback.
-
Helpful comments everyone, and thanks for the data Aviva. For me, an older browsers is one that is unable to use modern web features, such as An additional point that @mattkrick brought up in our 1-1:
I propose the following next steps:
Please let me know if you have any objections. If not, I'll create an issue at the end of the week. |
Beta Was this translation helpful? Give feedback.
-
Problem
When users use old browsers, they can encounter bugs and a degraded experience.
In December 2020, we upgraded to webpack 5 (#4455) where automatic polyfills were removed. Since then, ~100 users have experienced a fatal bug as their browser doesn't support
flatMap
. Sentry errors here & here.What could we do?
Suggestion
I suggest that we ask the user to upgrade their browser if they encounter a browser related bug.
I also suggest that we review older browser bugs on a case by case basis. If there's a simple solution, we could implement it.
Polyfills
If we use polyfills to add support for older browsers, we may prevent bugs and improve the user experience on older browsers.
However, polyfills can be complex to implement, unreliable and bloat the app. Adding support for <1% of users (who are typically non-paying customers) can degrade the performance for the remaining 99%. Supporting older browsers also degrades the developer experience.
Ask the user to upgrade their browser
We could show a pop-up when the user encounters a bug or display a temporary snackbar if we detect that they're using an old browser.
I suspect that people using an ancient browser are unlikely to upgrade if the app is working fine but a snackbar tells them to do so. It would probably just irritate them. But if they encounter a bug, it's helpful to give them feedback.
If Sentry reports a browser related bug, e.g.
flatMap is not a function
, we can add a check in the ErrorComponent that saysif (arrayOfBrowserBugs.includes(error.name)
show old browser error message instead of current generic error feedback.Consider squashing older browser bugs if they're super simple
We've got an infinite number of things to build. Supporting older browsers for a tiny percentage of users shouldn't take our focus. However, if there's a bug affecting lots of users that can be fixed in minimal time without degrading the user or dev experience, why not do it?
Currently, we're using
flatMap
in two places causing a fatal bug for ~100 users. We could create a simple util function that performs the same method without crashing the app on older browsers.The downside is that it's a frustrating for devs to not be able to use modern JavaScript and the team is unlikely to remember to use the util function as we scale.
Still, if replacing two
flatMap
s saves ~50 fatal bugs per month (at our current user base size), takes minimal time to implement and remains highly readable, I think it's worth doing.Do nothing
There's an opportunity cost to everything but the above solutions are quick to implement and would provide helpful feedback to users.
Beta Was this translation helpful? Give feedback.
All reactions