Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If React is so great how come Amazon isn't using it in their store?

I think last year an Amazon frontend engineer wrote some tweets explaining they tried React and it was too slow. So they keep using Java for SSR and sprinkle vanilla JS. They were still using jQuery until a couple of years ago and probably still are in some parts of their site.



Do not base your company’s tech decisions on FAANG companies unless your company is a FAANG company. Your challenges are likely very different from theirs


Everyone using React is basing their work on Facebook’s challenge!


You're missing the point of my comment.

Someone is contesting that "frameworkism isn't delivering" when we have objective data to prove that it is in fact not delivering.

The Amazon store is just a good example because there's a lot of data about it, not because it's FAANG.


What I read from what you said is “Chevy trucks are good? Oh yeah, if trucks are good, why does the post office use non-Chevy, non-truck, fleet cars?”

Please help me understand where I misunderstand


"Trucks are bad for X"

"No, trucks are good for X"

"Look at this use case (Amazon) with tons of objective data that shows that trucks are bad for X"


"Look at this use case (Amazon) with tons of objective data that shows that trucks [do not fit Amazon's use case for X]"


It seems that you're arguing that the performance requirements of Amazon are different from other sites (in e-commerce or not). Is this it?

Are you arguing that web devs should ignore CWV for e-commerce sites?


You just picked Amazon arbitrarily because it supports your argument, but there are many more counter examples where react is used, so what's your point?


And who where it’s faster and more performant? Not Pinterest. Not Airbnb. Not X. Not the Amazon competitors he showed. Not even the flipping creators (Facebook) of the framework. You all keep blaming the specific companies for their sites but can’t ever seem to show us an actual performant and good example of react usage.


I used Amazon because there's a significant amount of data to indicate React is a bad fit for e-commerce (as the OP article points out).


React is in use in many heavily used frontends at Amazon, maybe not the retail site

But there's no inherent reason React couldn't be used for a page that basically shows pictures of products with a description next to them, the bottlenecks will have nothing to do with the frontend in a well engineered system for that type of site


My constant problem with React-based tools is that they don't support deep links properly. You want to right-click on a product description to open it in a different tab to check later, and you can't.

Even freaking Google (who really should know better) suffers from that. Amazon's retail frontend uses plain HTML, so it works fine.


I'm not sure how much experience you have with react, but it doesn't need to "support" links, they function exactly the same as with vanilla js, there's nothing about react that prevents their use. Using JavaScript for links is entirely a developer decision.


Sure is odd that a good number of react-and-friends websites can’t manage to support it all then.

Just like how routing and history is “solved” but I encounter websites every other day that completely break my browser history.


> Sure is odd that a good number of react-and-friends websites can’t manage to support it all then.

I don't think that's true. More likely, you use react websites all the time and don't even think about it because the links work as you expect.


I'm familiar with React. And no, links in React often don't work without extra attention.

It's way too easy to put some state information into the context and then have your pages depend on it. For example, you have a page with a filter that is implemented via a simple state, and then a list of widgets that pass the filter. The widgets have a click handler that opens the widget details.

Now you right click on it. If you're lucky, it opens the widget details in a separate tab. However, the filter information is lost.


> And no, links in React often don't work without extra attention

Links work fine, out of the box, react treats them the same way vanilla js does. JavaScript onClick events aren't links, and that's true whether you're using react or vanilla js.

> It's way too easy to put some state information into the context and then have your pages depend on it.

What do you mean it's too easy? If someone makes poor engineering choices because that's the "easy" thing to do, that's their fault, the tool didn't make them do that.

> Now you right click on it. If you're lucky, it opens the widget details in a separate tab. However, the filter information is lost.

This is true of JavaScript in general, it has nothing to do with react. In order for links to work, the server has to render pages that correspond to the link, whether that means encoding state in the url or pulling it from a session, this is required whether you're using react or literally anything else.


> I'm familiar with React. And no, links in React often don't work without extra attention.

^ These two statements are at odds with each other.

React will return a pure browser link that behaves exactly as a browser link:

   function Comp() { return <a href="some-link">text</a>;  }

> The widgets have a click handler that opens the widget details. > > Now you right click on it. If you're lucky, it opens the widget details in a separate tab. However, the filter information is lost.

So, the problem isn't React. The problem is people overriding default browser behaviour for their widgets. It was a problem before React, and it will be a problem long after React.

For example, here's Google's premier site about web technologies: https://web.dev/articles Check out the pagination links at the bottom. There's no React on the page


> React will return a pure browser link that behaves exactly as a browser link

No it doesn't (in practice). React is typically used with something like React Router that takes over the whole sub-tree of paths. So links are handled by the single-page app itself, and this can lead to the state leaking through.

Yes, you don't _have_ to do it this way.


> No it doesn't (in practice).

Yes , yes it does, in practice.

> React is typically used with something like React Router that takes over the whole sub-tree of paths. So links are handled by the single-page app itself,

"Taken over by Router", "handled by SPA itself" .... "React is to blame"

> Yes, you don't _have_ to do it this way.

Yes, you don't have to it this way, and this isn't React-specific. See Google's web.dev site built with web components


> My constant problem with React-based tools is that they don't support deep links properly.

I worry that most people complaining here about React, including the OP, do not actually understand the very basics of React. Here someone is complaining about how React somehow messes with deep links. Without understanding that React does nothing to links. Nothing.


> maybe not the retail site

I'm discussing the retail site specifically because that's where CWV matter.

If a company has internal tools that take seconds to load it doesn't really matter. Captive users don't have much of a choice.


It's in use in customer facing apps, Prime Video is built with React


Most of their app is a mismatch of web views and native with spinners galore. It doesn’t seem like performance is a high priority for them anymore.

E-commerce is fundamentally small data once the user lands on a product page, so every subsequent link and click should be instant.


Because Amazon Store is and aleays was an armpit of webdesign? It's the worst designed e-commerce site and decades of tinkering only brought it half way towards basic level of decency that was obvious to a beginner web developer making their own first e-commerce site from scratch in PHP 20 years ago?


You’re blurring architecture with UI.

The Amazon site is pretty ugly, yes, but it’s functional and fast.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: