I’ve been learning React recently,and I build something that pushed me to learn a lot - an enterprise-style dashboard . It had the stuff dashboards usually have: big data tables filters that actually matter layouts with sidebars routes that should be locked down based on role And that’s when I realized something: the way we write React in beginner tutorials doesn’t scale cleanly to dashboards. Here are 3 architecture lessons I learned while building it. 1) I stopped doing “fetch inside useEffect” everywhere (RTK Query made it clean) At the start, my instinct was the usual: put fetch() inside useEffect manage isLoading , isError store data in local state repeat the same pattern in multiple components That works fine… until you add filters . In my “Quality Checks” table, the user could switch tabs and apply filters, and the data needed to refresh smoothly. Doing this manually started getting messy fast - lots of repeated code and state handling. So I switched to RTK Query .…