I've talked at length about the architecture part during this talk: https://vimeo.com/168648012
In terms of breaking things down into components, it's super valuable to go as small as you can. Build tiny, tiny lego blocks that are super simple, and then almost all you have to do to build a complex application is compose these tiny lego blocks together.
Because you understand the tiny pieces, you also easily grasp the whole app without big trouble. It's amazing!