In reply to Cathy Tibbles.

It'll probably change depending on the situation. Personally, I would probably build individual block plugins. For example, if I have a custom testimonial block I want to use with one or more of my themes, I would make that a single block plugin. Of course, in development, you could create all your block plugins in a monorepo if you prefer everything in one place.

Another route would be to create a big block library/collection plugin with all your blocks. It's easier to maintain and market that, I suppose. However, you might be stuck supporting/styling all those blocks with every theme.

For block styles and patterns, those should generally be specific to the theme. There may be some that you reuse in different themes though. You might consider separate repos for those and pull them in via Composer. If you're building very generic patterns (e.g., three columns, two buttons next to each other, etc.), it might be worth considering a pattern library plugin.

Ultimately, what I think the lead Gutenberg/WordPress devs want to see is the community move toward single block plugins. At some point, we'll have a block management screen in the admin, which will cater toward that.