In the last three months of 2022, I built out the Schema.org Blueprints module. As of last week, there are finally two reported installs after hundreds of hours of work and thought. I am unsure if anyone’s using the module or even understands its use case and goals.
The Schema.org Blueprints module has 49 stars, 5 open issues with 33 tickets, and 113 passing tests. The project page is descriptive, with links to documentation. Every sub-module, of which there are many, has an up-to-date README.md file. There are half a dozen screencasts and presentations, with a few other people posting videos and discussions on YouTube. On the Talking Drupal podcast we discussed the module's history, use cases, and its future. My organization is only beginning to plan for a gradual migration to a decoupled Drupal instance using the Schema.org Blueprints module. Lastly, I submitted a session proposal to discuss the module at DrupalCon Pittsburgh.
After all my effort, this project could sit idle on Drupal.org with the nightly automated tests running until an API change or a new version of Drupal core suddenly breaks the tests.
Should I abandon this endeavor?
Did I do something wrong, or did I waste my time?
Prior to writing this blog post and everything I mentioned above, I thought a need existed, however, the lack of activity I’m seeing means I need to ask these hard questions. I’m hoping to be able to provide answers, document the module’s status and understand better what has been completed, and ask what is needed to move forward.
As a developer, "wasting time" is part of building and maintaining good code - if something ultimately doesn’t work into the final outcome, it’s still part of the process if for no other reason than that I’m learning something new or honing a skill. For example, the Schema.org Blueprints module can generate an entire website's content architecture, including content types, fields, and relationships, in a minute or two via a UI or Drush. This work taught me how to programmatically build or manipulate any entity, field, display mode, and form mode in Drupal. I can script changes in a matter of minutes, which would take an hour or two to do via Drupal's UI. For my organization, which sponsored most of the work on this project, I was able to show what a next-generation Content Management System could look like by creating a POC demo that integrates dozens of the Drupal community's best practices and modules for content authoring.
The answer for me as a developer is "No," I did not waste my time because I've written some good code that explores a new idea and approach to building content models in Drupal. But now I have to ask the practical question of the potential users: Is no one interested in building standardized content models?
Does no one care about their content models in Drupal?
People and organizations care about their content models, which is why teams have dedicated roles, including content strategists and information architects. Organizations care so much about their content architecture that they will document their unique standards and naming conventions. Each organization has unique, beautiful APIs with auto-generated documentation that defines every entity and field.
Still, every time an organization needs to pull or push data from or to another organization, a developer has to sit down for several hours to understand each organization's content model and build a mapping of data types, entities, and relationships. Specifically related to Schema.org, organizations who want their data exposed as rich results on Google. have to shoehorn their content model using a custom mapping to Schema.org types using JSON-LD. When we build new content models, we face one of the biggest challenges in programming, naming things is hard, and frankly, mistakes resulting from changing names can be even harder.
The answer is not that no one cares about their content models; we all care about the quality of our content models. Similar to what motivates open source, we should care so much that we collaborate to create the highest quality, standardized, and reusable content models possible.
How can I reframe and improve my discussion around building standardized content models using Schema.org?
My experience building and maintaining the Webform module was the polar opposite of the Schema.org Blueprints module. With the Webform module, there was already an existing use case and code base with many installations. Simply put, organizations need forms on their website to collect user data, and Webform does that. So I built the Webform module, wrote documentation, recorded training videos, and presented at a few DrupalCons and camps, and now a lot of websites rely on my code. By contrast, the Schema.org Blueprints module currently has zero installations, so something needs to change.
I am unsure how to reframe and improve the discussion and promotion of the Schema.org Blueprints, and I need the Drupal community's direct, honest, and friendly feedback. And so, similar to always learning something new when writing code, I am going to do here what I generally do, which is incorporate something into this blog post that communicates my intentions and/or sentiments, quote something, that, at first read, is deceptively simple. It’s from my favorite movie, The Graduate.
Mr. McGuire: I just want to say one word to you. Just one word.
Benjamin: Yes, sir.
Mr. McGuire: Are you listening?
Benjamin: Yes, I am.
Mr. McGuire: Plastics.
Benjamin: Exactly how do you mean?
Mr. McGuire: There's a great future in plastics. Think about it. Will you think about it?
Can a one-word pitch be found for the Schema.org Blueprints module?
As I think about how to promote the Schema.org Blueprints, this scene says it all with a few tweaks (and in a fun way where we can roleplay - I’ll be Mr. McGuire and you - the Drupal Community - can be Benjamin).
Me: I just want to say one word to you. Just one word.
The Drupal Community: Yes, sir.
Me: Are you listening?
The Drupal Community: Yes, I am.
Mr. McGuire: Schema.org Blueprints module. Ahem, actually, that’s three words. Sorry.
The Drupal Community: Exactly how do you mean?
Mr. McGuire: I think there’s a great future in Schema.org Blueprints module. Will you think about it? Will you let me know if it works, if it doesn’t?
If it hasn’t occurred to you yet, I am struggling to figure out the future of this module.
Whenever someone tries to pitch me an idea that will change the future, I think about "Plastics." Admittedly, plastics are everywhere. In "The Graduate," plastics have much more symbolism than just one person's vision of the future and represent the lead character's fake or artificial future and circumstances. But, bring this back to the Schema.org Blueprint - who’s to say that couldn’t be the case here with Schema.org Blueprints module? It could turn out to be much more influential in the grand scheme (I know, I know) of things. Or it couldn’t.
Am I alone in stating that Schema.org is the future of content management? Or is this a not realistic proposal?
Are there other perspectives and possibilities around building standardized content models?
Am I telling you something you already know or don't care about?
Does the potential of Schema.org represent something else other than reusable content models?
Please try out the module, watch a video, and give me some positive or negative feedback. Feel free to ping me via Drupal Slack; I'm always open to talking and helping people to find the relative benefits of using my free code and nudging them to contribute something back.
I’m listening. Good, bad, or indifferent. I’m listening.