Structure and State
Organize by feature. Everything for one feature in one folder, genuinely shared things in a shared one. A change then happens in one place, and deleting a feature is deleting a folder.
Put state in the smallest component that needs it. Lifting everything to the top is the most common cause of a slow interface, and moving it down is free.
Build the states you designed in phase 2. All four, plus first-run. If you are using TypeScript, make them a discriminated union so an impossible combination cannot be constructed at all.
Keep a way to trigger each one by hand until the real requests work. An error state you cannot see on demand is an error state you have not actually designed.
Mark this lesson complete
Signed in, your progress follows you to every device.