Great articles Kolby. It's always better to have the features grouped together as you did.

There are a few points I usually avoid though. For example, I tend to not define top-level "global" folders, such as global "hooks" or "utils". The reason being, over time those folders tend to be bloated with a lot of "global stuff" the engineers dropped in there because they just didn't know where to put it.

For components, I would separate them in their own module such as a UI library.

For what you call "utils" or "hooks", they can often be grouped into named folders such as "date" utils or form "validation" utils and in that case, I would again create a module with those util functions grouped together instead of loosely mixed with other utils.