Over the past two years, it took a few blog posts for me to fully explore and explain how to use Schema.org as the foundation for content models; this exploration led me to create the Schema.org Blueprints module. Early into its development, three goals became apparent - they became the intro on the module's project page.
The Schema.org Blueprints module provides perfect data structures (Schema.org), pristine APIs (JSON:API), and great SEO (JSON-LD).
These concrete goals helped me focus on the module's core functionality and APIs, yet none of these "primary" goals acknowledge my underlying desire to use Schema.org as a collaborative, open source foundation for building websites and applications using Drupal core and its vast ecosystem of contributed modules.
Open source software development has so many nuances; writing and sharing some code online with an MIT license is not always enough. For example, after an experienced developer determines an open source project addresses their business requirements, they have to ponder if this "free" source code is stable and maintainable.
I recognize that the Schema.org Blueprints could be the foundation for applications or websites built using Drupal's ecosystem of contributed modules. The Schema.org Blueprints module's code needs to be compatible, stable, maintainable, and extendable, and this led me to expand my primary goals to include secondary and tertiary goals.
Below is my complete list of goals for the Schema.org Blueprints module.
Primary
Content modeling
- Structured Data
- Application Program Interfaces (APIs)
- Search Engine Optimization (SEO)
Secondary
Content authoring
- Administration interface
- Content authoring
- Multilingual support
Tertiary
Collaboration
- Open source
- Modular and extendable
- Stable and reliable
I’ll be the first to admit that my secondary goals related to content authoring are completely about scratching my own itch, specifically, my organization's itch and concern about the future of their CMS. Drupal offers many tools to improve, adjust, and change Drupal's out-of-the-box content authoring experience. Consequently, I wanted to explore the ideal content authoring experience that could be built on top of the Scheme.org Blueprints module's foundation.
For example, I decided that all Schema.org Blueprints presentations and demos will use the Gin admin theme for two reasons: one, because the Gin admin theme is fantastic and provides "a radically new administrative user interface," and two, because I have financially supported the Gin admin theme via Open Collective for several months. These funds help support the Gin admin theme's creator and maintainer, Sascha Eggenberger (saschaeggi). Please help support Sasha's Gin admin theme work via Open Collective or GitHub Sponsors.
Negotiating the right recipe of content-authoring enhancement modules is challenging. I am optimistic that the "Distributions and Recipes" initiative will make it easier for everyone to share their recipes. For now, I'm hopeful that the Schema.org Blueprints can become a key ingredient when baking content models in Drupal moving forward.
Below is a presentation about the primary, secondary, and tertiary goals of the Schema.org Blueprints modules. I hope this presentation helps clarify the what and why around the Schema.org Blueprints module, partly because I have yet to take an alpha release…but it’s coming very soon.