In this chapter, we covered the essentials of performance tooling and concepts, from RAIL to DevTools, to PageSpeed Insights. We also made a significant performance improvement using the app shell pattern. We'll continue to hone our app's performance in the following chapters.
Our next chapter will tackle the biggest performance hurdle--our behemoth JavaScript file. We'll learn how to split it into smaller chunks using the magic of React Router and how to load those chunks during the idle time of our app. Let's get to it!