Return to site

Baking a Recipe using the Schema.org Blueprints module for Drupal

June 13, 2022

In my last post, I introduced the Schema.org Blueprints module to the Drupal community. At DrupalCamp NJ, I shared a presentation about the module. The blog post and presentation managed to collect a bunch of helpful feedback, which encouraged me to simplify the module's dependencies and relationships. One of the biggest improvements is that JSON-LD is now fully supported with previews and dedicated API support. The entire module is still under active development. As you read this new post, new features are being added (and removed).

The reality is the Schema.org Blueprints module is turning into a pretty large undertaking. I will need help from individuals and organizations in the Drupal community to launch a stable release. At the same time, by not having an alpha release, I can frame out most of the core APIs and challenges quickly while making changes as needed. Leveraging a Schema.org-first approach to modeling content in Drupal has required a lot of thought and strategy. The sustainability of the module is going to need an equal amount of effort and a dedicated blog post. For now, I need to build up the Drupal community's interest in the module by creating content and demos that showcase the Schema.org Blueprints module in action by baking a recipe.

Recipes are among the most shared content types on the web and probably the most shared content off the web. In the Drupal community, we have chosen to provide a recipe website, named Umami, as our out-of-the-box demo site. Umami's recipe content type is based on https://Schema.org/Recipe. Umami's recipe content type's fields are very similar to Schema.org's Recipe's properties. The fundamental goal of the Schema.org Blueprints module is to model the content architecture and relationship to be identical to the Schema.org specification so that our data structures are perfect, APIs pristine, and ultimately create a webpage with great SEO.

The below demo shows how to create a 'recipe' content type in Drupal based entirely on https://Schema.org/Recipe using two possible approaches via the Paragraphs module or Flex Field module to build out the nutrition information. Everyone should be familiar with Paragraphs, but Flex Field is a newcomer that seeks to fill the need to create a lightweight collection of properties/fields. The Flex Field module "lets you create simple inline multiple-value fields without using entity references." Watch the below video and decide which approach works best for your recipes.

Please post your comments, ideas, and suggestions below or on YouTube.