31 Dec 2025
Drupal.org aggregator
Dries Buytaert: 20 years of blogging

My blog turns 20 today!
I have been at this for two decades now, yet I still don't identify as a blogger. It feels awkward to say the words: I am a blogger.
Probably because I started writing to think out loud. I never set out to be a blogger. And honestly, I still feel like I'm figuring the whole thing out.
My history with blogging actually goes back 25 years. Before this site, I started Drop.org, where I shared ideas and experimented with emerging web technologies. Drop.org eventually led me to create Drupal. Drupal 1.0 even included a feature called "public diaries". We didn't call it "blogging" back then, but that is what it was.
The irony was that Drupal was powering personal blogs around the world, while my own site was still a few static HTML files.
At DrupalCon Amsterdam in 2005, Steven Wittens called me out on it. Steven was the number two in Drupal at the time. He proposed a bet: if I did not launch a Drupal-powered site before January 1, 2006, I would owe him a Duvel. If I did, he would owe me one.
I wrote my first post on December 31, 2005 with less than a day to spare. I don't remember if I ever collected that Duvel, but I haven't stopped writing.
In the early years, I would post short thoughts on a whim. Social media did not exist yet, so there was almost nothing between a thought and my Publish button. Today, those quick thoughts often end up on social media instead, although I have mostly stepped away from it. More people read what I write now, so a new post can take me hours instead of minutes.
I removed analytics from my site long ago. I do not want to write for page views, nor do I want to invade your privacy. My site aspires to the privacy of a physical book.
I write to discover and connect with people. But one thing has never changed: I am a terrible judge of what will connect. The posts I polish the longest often get little attention, while the ones I nearly talk myself out of publishing are the ones people share. I have stopped trying to explain this, but it reminds me that I do not get to decide what matters to others. Maybe the polishing takes something away. Maybe the risky ones carry an honesty that others can feel.
I love that writing in public has a way of keeping you honest. Ideas that seem solid in my head can fall apart the moment I try to explain them. I have changed my mind more than once simply by trying to put my thoughts into words.
But the writing is only half of it. The best part happens after you press publish.
Blogging starts conversations with people I have never met. Blog posts become invitations that never expire. They wait patiently for the right moment to be found. Someone reads an old post, reaches out, and suddenly we are talking. Even in person, conversations start more easily because people already have a sense of who I am or what I care about.
My attention to this blog has gone up and down over the years. Work pulled me away. Travel pulled me away. But I always come back. Writing in public gives me something I do not get anywhere else.
It is strange to think this all traces back to that Duvel bet. My site still runs Drupal of course, which must make it one of the oldest Drupal-powered sites.
Some of you have been reading since the beginning. Many found your way here much later. I am grateful for all of you. Thank you for making this feel like a conversation instead of a monologue.
I plan to keep writing here as long as I can. If you have been reading for a while, I would love to hear from you. Even a simple hello means a lot.
31 Dec 2025 4:21pm GMT
Symfony Blog
Symfony 2025 Year in Review
This post highlights the key accomplishments of the Symfony project in 2025. We are grateful for your continuous support, which helped make 2025 a remarkable year for Symfony. Releases We released three new major versions: Symfony 7.3 in May and Symfony…
31 Dec 2025 10:13am GMT
Symfony 8.0.3 released
Symfony 8.0.3 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip…
31 Dec 2025 9:43am GMT
Symfony 7.4.3 released
Symfony 7.4.3 has just been released. Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project. Tip…
31 Dec 2025 9:12am GMT
30 Dec 2025
Drupal.org aggregator
Dries Buytaert: The Control Layers of AI

Salesforce had an embarrassing moment last week.
Vivint uses Salesforce's Agentforce to send satisfaction surveys after customer service calls. Recently they discovered surveys were randomly not being sent and no one noticed for weeks.
When Salesforce investigated this problem, they found the root cause: their AI agents were skipping steps. A sobering discovery for a company betting its future on those agents.
What is most telling is how Salesforce is responding. They are not rushing to build smarter AI models. They added more structure and guardrails around the agents. More workflow, not more magic.
And that is the right answer. I actually wrote about this months ago in The Orchestration Shift:
The future will likely require both: deterministic workflows for reliability and consistency, combined with AI-driven decision-making for flexibility and intelligence.
Salesforce learned it the hard way.
This is exactly why I've been paying attention to external workflow automation platforms like n8n and Activepieces. They let you control which steps are deterministic and which steps use AI. Internal automation solutions like Drupal's Event-Condition-Action module work on similar principles.
Using Activepieces or n8n, the Vivint workflow would look like this: the customer service call ends, AI analyzes the transcript and personalizes the survey message, then the automation platform sends the email. The AI does what it is good at and the automation platform ensures the send happens every time.
Which brings us to the first big question: is AI's reliability problem temporary or permanent? If it is only temporary, orchestration tools may be a bridge solution. But if reliability limits are inherent, workflows become essential infrastructure. I believe the latter.
LLMs are probabilistic by design, which means everything that can be deterministic probably should be.
Two architectural approaches are emerging for solving this problem.
The first is outside in. Workflow platforms like n8n or Activepieces put a deterministic process in control and use AI for specific steps within it. The workflow decides when to invoke the AI, what to do with its output, and what happens if it fails. Outside in is more reliable and auditable. If the AI fails or returns something unexpected, the workflow catches it. You can see exactly what happened and why. But it is less flexible because you are limited to what the workflow designer anticipated.
The second approach is inside out. AI agents call deterministic tools as part of their operation. The AI is in control, but when it needs to do something that requires precision, it hands that task to a tool that executes reliably. This is what Anthropic's Claude Code does, for example. When Claude Code needs to verify that code compiles, it does not guess. It calls an actual compiler. Inside out is more adaptive. You describe what you want and the AI figures out how. But it is harder to audit and debug, harder to explain to regulators, and more expensive at scale since the AI is invoked at every step.
It feels intuitive that both approaches will coexist. They are nested. Picture three layers. The outer layer is the enterprise workflow. It decides what happens and in what order. The middle layer is an AI step. It makes judgment calls within each step. The inner layer is deterministic tools. They execute precisely when the AI calls them.
Not everyone needs all three layers. For certain tasks, like writing software, inside out is enough. But for complex enterprise workflows with many steps, integrations, business rules, and audit requirements, you need the outer layer.
That is where workflow automation platforms come in. They do not need to power every AI use case. They need to win the complex workflows where enterprises need visibility and control. That is also where a lot of commercial value will accrue. Enterprises pay for reliability and accountability.
We are still early in the age of AI agents. The temptation is to believe that intelligence alone will replace structure. But enterprises cannot gamble processes that touch customers, revenue, or compliance. They need systems where every step is accountable. That is why non-deterministic workflows matter. It is where reliability and intelligence meet and where the next generation of enterprise platforms will be built.
And when infrastructure becomes essential, organizations want to own it, not rent it. That is why Linux won servers and PostgreSQL won databases. If the orchestration layer becomes essential to enterprise AI, open source will be the natural choice. Activepieces is open source and n8n is "source available" (the code can be inspected but has commercial restrictions). Either way, I would love to see them succeed.
30 Dec 2025 10:05pm GMT
Web Wash: Indexing PDF Docs using Search API and Solr in Drupal
Indexing document content in Drupal enables users to search within PDF and Word files, making document libraries more accessible and discoverable. Search API Attachments combined with Apache Solr provides a powerful solution for extracting and indexing text from uploaded documents.
In the video above, you'll learn how to set up document thumbnails for PDFs and Word files, install and configure Search API with Search API Attachments, set up Apache Solr locally using DDEV, configure Solr's built-in extractor for document content, and create search views with faceted filtering.
30 Dec 2025 2:22pm GMT