Good tutorial, but it should be made clear that you generally shouldn't load/fetch data in useEffect. Doing so is an obsolete pattern that even Dan Abramov stopped supporting long ago: https://www.reddit.com/r/reactjs/comments/vi6q6f/what_is_the_recommended_way_to_load_data_for/. You should fetch data using a library like React Query, of if you're using React Router you can fetch data in route data loaders: https://reactrouter.com/en/main/route/loader. In larger projects, my preferred pattern is to use React Router route data loaders to fire Redux data fetching actions (React Toolkit, to be precise), which can ensure that data is available when the component first renders. It also allows for server-side rendering, which useEffect does not.