In reply to Antony.

In the case of 100s or 1,000s of recipes, it'd be better to have a CPT managing those larger datasets. If you're going that big, you should start thinking about your architecture before launching. However, the client could still directly enter the data into the block editor. It should just be stored as metadata. Then, you can build one or more blocks around that implementation for whatever you needed.

That implementation can hide the CPT and allow them to enter a Recipe block into their posts, which gets saved back to the CPT. Or, it can go in the opposite direction. They can enter data into a recipe CPT, which can be neatly laid out with the block editor, and place a Recipe block into their posts if they want. There are loads of ways of handling it.

For the purposes of this post, we can just have fun with building stuff.