We build sites with complex data structures on WordPress using CMB2 for custom fields. I think Gutenberg has its place, but if you want to build anything of any real size you're going to need data structures (i.e. content types with defined relationships), and Gutenberg doesn't allow that. It's an odd kind of structured layout tool that I think will confuse a lot of people.
For all their faults (which are less and less as it develops), WYSIWYG fields using TinyMCE have the massive advantage that they look like the word processors that most people are familiar with. Beyond small personal blogs I just don't think Gutenberg adds any value, and if anything muddies the water for site editors if you're using structured data and Gutenberg.
We've taken the decision to disable Gutenberg entirely and just use custom fields so we can maintain stable data structures, rather than trying to crowbar that into Gutenberg somehow. All you need to do is only use custom post types without the "editor" capability, hide the Posts menu item, and define everything through CMB2 custom fields.
I build Django sites often based around TinyMCE and this is my experience. If you've got a blob of content then drop in an MCE field but the minute you're dealing with structured data - WYSIWYG often makes things more complex.
TinyMCE really is quite extensible and flexible if you keep to it's sweet spot. It can produce fairly clean and consistent markup based on a whitelist of elements - which is critical if you're storing HTML directly in a database field.
For all their faults (which are less and less as it develops), WYSIWYG fields using TinyMCE have the massive advantage that they look like the word processors that most people are familiar with. Beyond small personal blogs I just don't think Gutenberg adds any value, and if anything muddies the water for site editors if you're using structured data and Gutenberg.
We've taken the decision to disable Gutenberg entirely and just use custom fields so we can maintain stable data structures, rather than trying to crowbar that into Gutenberg somehow. All you need to do is only use custom post types without the "editor" capability, hide the Posts menu item, and define everything through CMB2 custom fields.