Kitty Giraudel avatar Kitty Giraudel

N26 and lack of JavaScript

Screenshot of “N26 and lack of JavaScript”

Great article where Kitty shows how React helps providing N26 clients the features they're looking for even if they unfortunately have JavaScript issues.

I like how Kitty reminds us that JavaScript is not a given, it can be missing for many reasons:

JavaScript is fickle. It can fail to load. It can be disabled. It can be blocked. It can fail to run. It probably is fine most of the time, but when it fails, everything tends to go bad. And having such a hard point of failure is not ideal.

All other online services should follow N26's lead. Many don't.

I also like how Kitty shows evidence that using the browser's User-Agent string to decide what to send to the browser is dangerous:

we realized we had an impressively high amount of errors coming from Internet Explorer 11, despite using Polyfill.io to provide unsupported features

Polyfill.io is a clever service built by The Financial Times that "makes it simpler to support differing browsers by attempting to recreate the missing features with polyfills". "Attempting" is key.

Also:

we use ua-parser-js to (hopefully) detect the browser

Unfortunately, too many sites/apps rely on the User-Agent string to decide what to do with the request, as Šime Vidas' experiment with an empty User-Agent string shows. 😥

That's a good reason to remove (or at least simplify) the User-Agent from browsers, as Safari tried earlier, and Chrome intends to do.


  1. screenshot of React Bias

    Jeremy Wagner avatar Jeremy Wagner

    React Bias

    The juxtaposition of The HTTP Archive’s analysis and The State of JS 2020 Survey results suggest that a disproportionately small—yet exceedingly vocal minority—of white male developers advocate strongly for React, and by extension, a development experience that favors thick client/thin server architectures which are given to poor performance in adverse conditions. Such conditions are less likely to be experienced by white male developers themselves, therefore reaffirming and reflecting their own biases in their work.

  2. screenshot of Second-guessing the modern web

    Tom MacWright avatar Tom MacWright

    Second-guessing the modern web

    […] there is a swath of use cases which would be hard without React and which aren’t complicated enough to push beyond React’s limits. But there are also a lot of problems for which I can’t see any concrete benefit to using React. Those are things like blogs, shopping-cart-websites, mostly-CRUD-and-forms-websites. For these things, all of the fancy optimizations are optimizations to get you closer to the performance you would’ve gotten if you just hadn’t used so much technology.

  3. screenshot of Hydration

    Jeremy Keith avatar Jeremy Keith

    Hydration

    The layered approach of progressive enhancement echoes the separation of concerns in the front-end stack: HTML, CSS, and JavaScript—each layer expressing more power. But while these concepts are related, they’re not interchangable. Separating out the layers of your tech stack isn’t necessarily progressive enhancement. If you have some HTML that relies on JavaScript to be useful, then there’s no benefit in separating that HTML into a separate payload. The HTML that you initially send down the wire needs to be functional (at least at a basic level) before the JavaScript arrives.