In reply to Justin Tadlock.

Would love to read more about how to do this. Because the way I always build sites for clients is create different custom post types, different custom fields, custom taxonomies, create different templates for the different sections/pages of the websites and in those templates I'm free to program everything I want in PHP.

For example a client website would have 'Projects' which each have a relationship with 'Publications', both Projects and Publications would use 'Authors' or 'Contacts' (also custom post types with custom fields). All custom post types with many custom fields for all sort of meta data. And all could have custom taxonomies (project and publication categories), which link them together. So that when viewing a Projects page on the website it would show some list or grid or map of projects, maybe filterable with some filters (which I can easily build in PHP), each project also showing related publications (related with the shared taxonomy) and showing the authors. Etc etc.

Clients would just go in Wordpress and add or edit the custom post types Projects, publications, Authors (besides the normal Posts and Pages), fill in the form fields, click the taxonomy items, all relatively easy and pretty robust against clients messing anything up.

I have read a lot about Gutenberg but I just don't see how I can build this from creating a few blocks and patterns in the Gutenberg editor.