When I wrote my last post one year and one day ago, âvibe codingâ was new. In fact, I heard about it for the first time while walking to some DrupalCon Atlanta social event â BĂĄlint and Lauri were talking about it after a long conference day. By the end of 2025, it was in the dictionary. Three months into 2026 and it’s everywhere â for better or worse.1
Also at the end of 2025, BĂĄlint did a very impressive demo for the Canvas team: AI tools that knew nothing about Canvas were able to successfully generate Canvas code components. During his demo he called out something unexpected (for 2024 Wim): the demo worked with minimal prompting thanks to Canvasâ code componentsâ detailed validation. đź
How did we get here?!
Config validation for more reliability & less frustration
I started advocating for validating Drupal’s configuration in 2022â2023. I argued Drupal’s config (schema) system was powerful but unreliable, that we should add validation to Drupal core’s config entity types.
The intended use cases for config validation that I mentioned in my DrupalCon talks: make Recipes reliable, allow decoupled admin UIs, make writing config via JSON:API a reality, improve automatic updatesâ reliability and increase the reliability of Drupal deployments (especially ones doing advanced things with config management).
In my assessment, superficial config validation was a risk for the Drupal ecosystem. Thorough (or often any) config validation would enable more use cases, and would allow the entire ecosystem to move faster and with more confidence â end users, developers, Drupal businesses but also automated tools such as scripts.
Not on my bingo card in 2023: AI.
Validation in Canvas
Later I found myself to be the (back-end) tech lead for Drupal Canvas. Product Manager Lauri had made it a clear requirement that all existing Drupal best practices for config management/syncing should result in perfectly reliable syncs when it comes to Canvasâ config entities. Hence aiming for thorough validation2 was one of the few crystal-clear things when we started Canvas.
Canvasâ config is 100% validatable, has thorough test coverage and detailed config schema, with many custom validation constraints.
The thinking:
- Achieve Canvasâ reliability ambitions.
- Enable higher velocity by having these foundations be precisely validated, tested, defined. Knowing that much functionality would be built on top, unreliability would be painfully present throughout, for both developers and end users. So: aim for instantaneous feedback with precise, actionable guidance.
- Build Canvas validation-first, to avoid painful or even impossible update paths (Drupal core’s path towards validatable config schema has been challenging).
The result is a quote of the inimitable phĂšnaproxima3:
Canvas is the most goddamn validated piece of code in all of Drupal
Realization: reducing human frustration also is AI acceleration
Back to BĂĄlint’s demo of ~3 months ago. In his demo, the human doesnât need to keep re-prompting the AI to try changing X or Y for things to work: Canvasâ validation errors tell the AI, so the human doesnât need to deal with mundane details!
The same reasons that reduce human frustration are also the ones that accelerate the use of AI tools. Humans benefit hugely, but as a bonus, LLMs can use the same precise guidance with actionable validation error messages (strictness alone is not enough); bringing not only more reliable results, but also less energy waste and faster results.4
Conclusion: the value of precise validation has multiplied. It now also guides AI/LLMs to generate something valid. Investment in validation now pays off multiple times. For some, âimportant because it enables AIâ may be the most convincing argument.
Dries wrote about how AI flattens [user] interfaces. To use the terminology in his post: validation is something that supports both the visible and invisible layers! Without it, both humans and AIs need to either guess/retry or become experts in the underlying code.
Thanks to BĂĄlint for reviewing this.
0% written by AI.
- 1
I bet you were thinking about that em-dash. âDid he write that using AI?â Proper typography is now an AI tell!
- 2
For those of you working on the Canvas codebase, I bet you’d use the word âimposeâ đ
- 3
Must be read whilst waving fist.
- 4
Ethical concerns are still present and unresolved. Economic realities sadly are unfortunately no longer a future concern, but a present one.