Dries Buytaert On digital experiences, Open Source, Open Web, Drupal, and our digital future. https://dri.es/ What it costs to run Drupal's infrastructure https://dri.es/what-it-costs-to-run-drupal-infrastructure https://dri.es/what-it-costs-to-run-drupal-infrastructure Tue, 10 Mar 2026 18:30:34 -0400 <p><figure><img src="https://dri.es/files/cache/blog/complex-infrastructure-1280w.jpg" alt="Silhouette of a person standing before a large circular portal surrounded by glowing screens and cables, suggesting complex digital infrastructure." width="1280" height="850" fetchpriority="high" /> </figure> </p> <p>Yesterday I wrote about <a href="https://dri.es/open-source-infrastructure-deserves-a-business-model">how Open Source infrastructure across many ecosystems is fragile and underfunded</a>.</p> <p>Drupal is no exception.</p> <p>Like most Open Source projects, Drupal runs on infrastructure that millions of people depend on but very few people directly pay for.</p> <p>Drupal's infrastructure costs roughly $3 million per year, including servers, bandwidth, CDNs, software, and staff.</p> <p>Funding comes from a mix of donated infrastructure from <a href="https://aws.amazon.com/">AWS</a> and the <a href="https://osuosl.org/">OSU Open Source Lab</a>, corporate memberships through our <a href="https://www.drupal.org/drupal-services">Drupal Certified Partner program</a>, in‑kind contribution from <a href="https://www.tag1.com/">Tag1</a>, revenue from DrupalCon, donations, and sponsorship on <a href="https://www.drupal.org">Drupal.org</a>.</p> <p>Last year, Drupal Association board member <a href="https://www.drupal.org/u/farriss">Tiffany Farriss</a> and CTO <a href="https://www.drupal.org/u/hestenet">Tim Lehnen</a> analyzed the project's infrastructure costs. Their estimate: infrastructure for Drupal 8+ sites costs about $10 per active website per year.</p> <p>But the Drupal Association has only about $7.50 per site per year to work with. About $3 comes from DrupalCon and the Certified Partner program. The remaining $4.50 comes from in-kind support: donated hosting, Tag1's infrastructure partnership, volunteer contributions and more.</p> <p>The missing $2.50 per site shows up as technical debt: certain upgrades get deferred, legacy systems persist longer than they should, and the community sometimes wonders why infrastructure progress feels slow.</p> <p>Plus, the $7.50 per site we currently fund is fragile. DrupalCon revenue depends on event attendance. Advertising depends on traffic. Tag1's in-kind contribution depends on one company's continued generosity. Our donated infrastructure from AWS and OSU could disappear at any time. If any of that support disappears, the funding gap grows, more infrastructure work gets deferred, and things could start breaking.</p> <p>Before talking about new funding models, it is worth asking whether the Drupal Association could reduce its infrastructure costs. Ten dollars per site per year may sound like a lot. Should we operate all of this infrastructure ourselves, or rely more on hosted platforms like GitHub or GitLab.com? Are parts of our infrastructure more complex than they need to be? Could we customize less to reduce costs and move faster?</p> <p>These are the right questions to ask. I believe we need to work both sides of the ledger: take a hard look at what we spend and build a funding model that depends less on goodwill. In practice, infrastructure decisions rarely optimize for everything at once. They involve tradeoffs between cost, speed, flexibility, and control.</p> <p>Corporate patronage is worth considering. A single well-resourced sponsor could fund Drupal's infrastructure in a way community fundraising cannot, and if the choice were between a patron and a crisis, a patron wins. It's fast, requires no technical changes, and doesn't touch the social contract with site owners.</p> <p>But patronage trades one fragility for another. Instead of depending on event attendance or AWS cloud credits, you depend on one company's continued generosity and strategic alignment with the project. If their priorities shift, we're back where we started.</p> <p>A patron funding infrastructure at this scale would also expect meaningful benefits. That could mean greater visibility, access to lead flow, and some level of control over Drupal.org.</p> <p>Most infrastructure systems connect usage to funding. Cloud platforms charge for compute. Roads are funded by taxes paid by the people who drive them. Drupal's infrastructure has no such mechanism: hundreds of thousands of sites depend on Drupal.org services, but the cost of operating those services is disconnected from the people who rely on them.</p> <p>A funding model tied to usage avoids some of the issues with corporate patronage, but comes with its own trade-off. Open Source culture is built on anonymous access. You can download any package, no questions asked, no account required. Any usage-based model has to break that norm.</p> <p>The simplest version would probably require a Drupal.org API key to download packages or receive automatic update notifications. Requiring an API key is standard practice for any commercial API, but in Open Source it feels different. Requiring site owners to identify themselves to Drupal.org is a cultural shift, even if the key itself is free forever.</p> <p>Any such mechanism requires changes to Drupal Core, which could take years to reach the installed base. If we go down this route, we can't wait for a funding crisis to begin this work. By the time a real crisis arrives, we could still be years away from a solution.</p> <p>I don't have a specific mechanism to propose yet. My goal here is to lay out the problem, explore potential solutions, and start the conversation. But we should start that conversation now, while we have the time and stability to get it right. Otherwise we may end up having this conversation later, under more pressure and with fewer options.</p> <p><em>Thanks to <a href="https://www.drupal.org/u/farriss">Tiffany Farriss</a>, <a href="https://www.drupal.org/u/hestenet">Tim Lehnen</a>, <a href="https://www.drupal.org/u/g%C3%A1bor-hojtsy">Gábor Hojtsy</a> and <a href="https://www.drupal.org/u/lauriii">Lauri Timmanee</a> for reviewing my draft.</em></p> Open Source infrastructure deserves a business model https://dri.es/open-source-infrastructure-deserves-a-business-model https://dri.es/open-source-infrastructure-deserves-a-business-model Mon, 09 Mar 2026 14:36:23 -0400 <p><figure><img src="https://dri.es/files/cache/blog/open-source-infrastructure-cracks-1280w.jpg" alt="A person stands before a massive circular machine with cracks forming inside it, suggesting infrastructure under pressure." width="1280" height="850" fetchpriority="high" /> </figure> </p> <p>Open Source software is free to download. But the infrastructure that makes it usable is not.</p> <p>When developers install or update dependencies through npm, Composer, pip, or Cargo, those tools rely on package registries that host and distribute millions of software packages. When maintainers collaborate, they depend on hosted services: Git repositories, CI pipelines, and other tools to build, test, and release software.</p> <p>Most of this infrastructure is invisible to end users, and almost no one thinks about what it costs to run.</p> <p>But it is not free. Someone has to operate the servers, pay for bandwidth, respond to support questions, patch security issues, and keep everything reliable.</p> <p>Much of the modern software ecosystem depends on these services working reliably. And yet the organizations operating them are almost always scrambling to fund them.</p> <h3>A patchwork of fragile arrangements</h3> <p>Every large Open Source project has found some way to keep its infrastructure running. Usually that means a mix of donated services, sponsorships, fundraising, cross-subsidy, or patronage from a single company.</p> <p>The table below highlights the primary funding mechanisms various Open Source projects depend on, even though most projects combine several.</p> <table> <thead> <tr> <th></th> <th>Donated infrastructure</th> <th>Multi-company sponsorship</th> <th>Community funding</th> <th>Single-company patronage</th> </tr> </thead> <tbody> <tr> <td>PyPI</td> <td style="text-align:center;">☑</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☐</td> </tr> <tr> <td>Packagist</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☑</td> </tr> <tr> <td>npm</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☑</td> </tr> <tr> <td>WordPress</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☑</td> </tr> <tr> <td>RubyGems</td> <td style="text-align:center;">☐</td> <td style="text-align:center;">☑</td> <td style="text-align:center;">☑</td> <td style="text-align:center;">☐</td> </tr> <tr> <td>Drupal</td> <td style="text-align:center;">☑</td> <td style="text-align:center;">☑</td> <td style="text-align:center;">☑</td> <td style="text-align:center;">☐</td> </tr> </tbody> </table> <p>The mix differs across ecosystems, and some rely on several mechanisms at once. But one thing stands out: none of these approaches tie funding directly to how much the infrastructure is used.</p> <p><a href="https://pypi.org/">PyPI</a>, the Python Package Index, illustrates the sponsorship model. It handles billions of downloads a day on infrastructure donated by Fastly, AWS, and Google Cloud. The <a href="https://www.python.org/psf-landing/">Python Software Foundation</a> described this arrangement's fragility in a <a href="https://pyfound.blogspot.com/2025/10/open-infrastructure-is-not-free-pypi.html">post last October</a>: if a single sponsor decides not to renew, it would cost them tens of thousands of dollars a month to replace the lost infrastructure.</p> <p><a href="https://packagist.org/">Packagist</a>, the main PHP package repository, follows a different approach. It is run by a private company that also sells a commercial product called <a href="https://packagist.com/">Private Packagist</a>. Revenue from the paid product subsidizes the free public registry. It's one of the more sustainable models out there, though it means a public good depends on one company's continued success.</p> <p><a href="https://www.npmjs.com/">npm</a> tried to operate as an independent company, ran into serious financial trouble, and was eventually acquired by GitHub in 2020. The end result is that critical JavaScript infrastructure is now owned by Microsoft.</p> <p><a href="https://wordpress.org/">WordPress.org</a> runs on a different version of the same dynamic: corporate patronage. Automattic, by far the ecosystem's largest commercial beneficiary, subsidizes most of the infrastructure. It works, but it also means that whoever funds the infrastructure controls it.</p> <p>The <a href="https://fair.pm/">FAIR project</a>, a federated package manager backed by the Linux Foundation, was designed to give the WordPress ecosystem an independent alternative. The software works but its organizers recently stepped back after <a href="https://joost.blog/fair-wordpress-and-knowing-when-to-stop/">failing to secure long-term funding commitments</a>.</p> <p><a href="https://rubygems.org/">RubyGems</a> took the community fundraising route, <a href="https://rubycentral.org/news/rubygems-org-funding-model-a-new-path-for-community-led-growth/">launching a program</a> last year asking businesses for $2,500 to $5,000 annually, with about 110 supporters needed to cover the registry's operations.</p> <p><a href="https://www.drupal.org">Drupal</a>, the Open Source CMS I help lead, depends on the Drupal Association to run much of the infrastructure behind the project: Composer endpoints, GitLab repositories, CI pipelines, automatic update notifications, and more. Running all of this costs roughly $3 million a year. Funding comes from a mix of donated infrastructure, community funding, DrupalCon revenue, and sponsorship.</p> <p>When the economics break, the consequences become visible. In February 2026, <a href="https://www.gnome.org/">GNOME</a> began <a href="https://www.phoronix.com/news/GNOME-GitHub-GitLab-Redirect">redirecting Git traffic from its own GitLab to GitHub mirrors</a> to reduce bandwidth costs. As a result, GitHub and its owner Microsoft now absorb some of GNOME's bandwidth cost.</p> <p>Taken together, these examples point to the same underlying problem. Most Open Source infrastructure does not have a real business model. It survives through donations, corporate sponsorship, and community fundraising, rather than revenue tied to the value it delivers.</p> <h3>From steward to service provider</h3> <p>One direction that makes sense to me is a simple <em>value exchange</em>: keep core infrastructure free for individuals and small projects, while organizations using it at scale help pay for what they consume. Not as a donation, but as payment for the infrastructure their software depends on.</p> <p>I look at Drupal as a concrete example of this in a follow-up post: <a href="https://dri.es/what-it-costs-to-run-drupal-infrastructure">what it costs to run Drupal's infrastructure</a>.</p> <p>In practice, this could mean the backend infrastructure around Open Source projects operating more like a SaaS service: the software remains open, but the infrastructure that powers updates and security becomes a paid service for large organizations.</p> <p>Some people will instinctively resist the idea of charging for the infrastructure behind an Open Source project. That reaction may feel familiar to anyone who remembers <a href="https://dri.es/the-commercialization-of-a-volunteer-driven-open-source-project">the early debates about paid contributors</a>. At the time, many feared corporate money would drive volunteers away. In practice, the opposite happened. Projects grew, contributor bases expanded, and paid engineers became some of their most active contributors.</p> <p>That does not mean every new funding idea is a good one. But instinctive discomfort alone is not a reason to reject it.</p> <p>In Open Source, what looks like fairness often is not. Free for everyone sounds equitable, but the cost does not disappear. It is absorbed by those who can least afford it, while the organizations that benefit most often pay the least. When a Fortune 500 company consumes Open Source infrastructure for free, that is not a neutral outcome. It is a subsidy flowing in the wrong direction.</p> <p>If the problem is that costs are disconnected from usage, the obvious place to start is linking them. Exactly how that would work in practice is a separate design question, and the answer will likely differ from one Open Source project to another. One possible approach is usage-based fees, tiered by download volume or API consumption. Questions about measurement, thresholds, and enforcement would need careful community discussion.</p> <h3>Governance is downstream of funding</h3> <p>If infrastructure funding models need to change, the obvious question is who decides. In Open Source, questions like this ultimately belong to the community.</p> <p>But communities do not decide these things in a vacuum. In practice, governance tends to follow funding.</p> <p>Discussions about Open Source infrastructure often focus on governance: who should control it and who gets to make the decisions. In reality, those questions are often settled by something simpler: who pays for it.</p> <p>FAIR is a recent example. The organizers didn't step back because federation was the wrong idea. They stepped back because no host would commit funding.</p> <p>When one organization pays for the infrastructure, it ultimately controls it. When a broader set of stakeholders funds it, governance broadens with it.</p> <p>That is why Open Source infrastructure needs more than better fundraising. It needs a business model that connects the cost of operating shared infrastructure to the organizations that rely on it most.</p> <p>Infrastructure that entire ecosystems depend on cannot rely indefinitely on goodwill alone. It deserves a business model.</p> <p>Solving the funding problem is a prerequisite to solving the governance problem.</p> <p><em>Thanks to <a href="https://www.drupal.org/u/farriss">Tiffany Farriss</a>, <a href="https://www.drupal.org/u/hestenet">Tim Lehnen</a>, <a href="https://www.drupal.org/u/g%C3%A1bor-hojtsy">Gábor Hojtsy</a> and <a href="https://www.drupal.org/u/lauriii">Lauri Timmanee</a> for reviewing my draft.</em></p> Markdown, llms.txt and AI crawlers https://dri.es/markdown-llms-txt-and-ai-crawlers https://dri.es/markdown-llms-txt-and-ai-crawlers Thu, 05 Mar 2026 10:18:15 -0500 <p><figure><img src="https://dri.es/files/cache/blog/machines-reading-web-content-1280w.jpg" alt="An empty office chair facing several glowing computer monitors, with small glowing fragments floating upward." width="1280" height="850" fetchpriority="high" /> </figure> </p> <p>In January, I made <a href="https://dri.es/the-third-audience">every page on my site available as Markdown</a>. Immediately AI crawlers quickly found the Markdown versions. I was excited, but excitement isn't data. Now that the dust has settled, I pulled a month of Cloudflare logs and analyzed them.</p> <p>I compared how much AI bots crawl my site to how often AI answer engines link back. For every citation they sent, their crawlers had fetched 1,241 pages. That is a lot of reading for very little traffic in return. It is <a href="https://dri.es/the-webs-broken-deal-with-ai-companies">the deal AI is offering creators</a> right now, and it is not a good one.</p> <p>People also asked whether serving Markdown reduced my bot traffic since the files are smaller. It does not. Bots fetch both versions, and my crawler traffic increased by about 7%. Offering a lighter format does not replace the heavier one. It simply gives bots more to crawl.</p> <p>As the table below shows, several AI companies crawl my site. Some fetch thousands of pages each month, but very few request the Markdown versions.</p> <div class="large"> <table> <thead> <tr><th>Bot</th><th>Vendor</th><th style="text-align: right">Total</th><th style="text-align: right">HTML files</th><th style="text-align: right">.md files</th><th style="text-align: right">Content Neg</th><th style="text-align: right">% .md</th></tr> </thead> <tbody> <tr><td>Amazonbot</td><td>Amazon</td><td style="text-align: right">16,872</td><td style="text-align: right">15,032</td><td style="text-align: right">1,840</td><td style="text-align: right">0</td><td style="text-align: right">10.9%</td></tr> <tr><td>ChatGPT-User</td><td>OpenAI</td><td style="text-align: right">13,864</td><td style="text-align: right">13,856</td><td style="text-align: right">8</td><td style="text-align: right">0</td><td style="text-align: right">0.1%</td></tr> <tr><td>Meta AI</td><td>Meta</td><td style="text-align: right">9,011</td><td style="text-align: right">8,526</td><td style="text-align: right">485</td><td style="text-align: right">0</td><td style="text-align: right">5.4%</td></tr> <tr><td>ClaudeBot</td><td>Anthropic</td><td style="text-align: right">7,144</td><td style="text-align: right">6,995</td><td style="text-align: right">149</td><td style="text-align: right">0</td><td style="text-align: right">2.1%</td></tr> <tr><td>OAI-SearchBot</td><td>OpenAI</td><td style="text-align: right">5,722</td><td style="text-align: right">4,422</td><td style="text-align: right">1,300</td><td style="text-align: right">0</td><td style="text-align: right">22.7%</td></tr> <tr><td>GPTBot</td><td>OpenAI</td><td style="text-align: right">3,385</td><td style="text-align: right">2,208</td><td style="text-align: right">1,177</td><td style="text-align: right">0</td><td style="text-align: right">34.8%</td></tr> <tr><td>Bytespider</td><td>ByteDance</td><td style="text-align: right">1,190</td><td style="text-align: right">1,190</td><td style="text-align: right">0</td><td style="text-align: right">0</td><td style="text-align: right">0.0%</td></tr> <tr><td>CCBot</td><td>CommonCrawl</td><td style="text-align: right">530</td><td style="text-align: right">530</td><td style="text-align: right">0</td><td style="text-align: right">0</td><td style="text-align: right">0.0%</td></tr> <tr><td>PerplexityBot</td><td>Perplexity</td><td style="text-align: right">467</td><td style="text-align: right">466</td><td style="text-align: right">1</td><td style="text-align: right">0</td><td style="text-align: right">0.2%</td></tr> <tr><td>Claude-User</td><td>Anthropic</td><td style="text-align: right">94</td><td style="text-align: right">87</td><td style="text-align: right">7</td><td style="text-align: right">0</td><td style="text-align: right">7.4%</td></tr> </tbody> </table> </div> <p>Interestingly, OpenAI runs three bots with different roles. <code>OAI-SearchBot</code> indexes content for search, <code>GPTBot</code> crawls for training data, and <code>ChatGPT-User</code> fetches pages in real time during live ChatGPT sessions.</p> <p>When I added Markdown support to my site, <a href="https://dri.es/the-third-audience">I exposed it in two ways</a>. The first is through dedicated Markdown URLs: append <code>.md</code> to any page and you get the Markdown version. The second is through content negotiation, where the original URL returns Markdown instead of HTML when the request includes an <code>Accept: text/markdown</code> header.</p> <p>No AI crawler uses content negotiation. Not one. They only discover the Markdown pages through the dedicated URLs, and only via the auto-discovery link. To be fair, the auto-discovery link points to the <code>.md</code> version.</p> <div class="large"> <table> <thead> <tr><th>Bot</th><th style="text-align: right">robots.txt</th><th style="text-align: right">sitemap.xml</th><th style="text-align: right">llms.txt</th><th style="text-align: right">.md files</th></tr> </thead> <tbody> <tr><td>Amazonbot</td><td style="text-align: right">182</td><td style="text-align: right">-</td><td style="text-align: right">-</td><td style="text-align: right">1,840</td></tr> <tr><td>ChatGPT-User</td><td style="text-align: right">-</td><td style="text-align: right">-</td><td style="text-align: right">-</td><td style="text-align: right">8</td></tr> <tr><td>Meta AI</td><td style="text-align: right">-</td><td style="text-align: right">75</td><td style="text-align: right">-</td><td style="text-align: right">485</td></tr> <tr><td>ClaudeBot</td><td style="text-align: right">496</td><td style="text-align: right">115</td><td style="text-align: right">-</td><td style="text-align: right">149</td></tr> <tr><td>OAI-SearchBot</td><td style="text-align: right">653</td><td style="text-align: right">-</td><td style="text-align: right">-</td><td style="text-align: right">1,300</td></tr> <tr><td>GPTBot</td><td style="text-align: right">-</td><td style="text-align: right">4</td><td style="text-align: right">-</td><td style="text-align: right">1,177</td></tr> <tr><td>Bytespider</td><td style="text-align: right">259</td><td style="text-align: right">-</td><td style="text-align: right">-</td><td style="text-align: right">-</td></tr> <tr><td>CCBot</td><td style="text-align: right">8</td><td style="text-align: right">-</td><td style="text-align: right">-</td><td style="text-align: right">-</td></tr> <tr><td>PerplexityBot</td><td style="text-align: right">142</td><td style="text-align: right">-</td><td style="text-align: right">-</td><td style="text-align: right">1</td></tr> <tr><td>Claude-User</td><td style="text-align: right">87</td><td style="text-align: right">-</td><td style="text-align: right">-</td><td style="text-align: right">7</td></tr> </tbody> </table> </div> <p>And then my favorite: <a href="https://llmstxt.org/">llms.txt</a>, a proposed standard where sites describe their content for AI systems. My site received 52 requests for it last month. Every one came from SEO audit tools. Not a single request came from an AI answer engine or crawler. (I don't use or pay for SEO tools but apparently that doesn't stop them from auditing my site.)</p> <p>For fun, we also looked across <a href="https://www.acquia.com/">Acquia</a>'s entire hosting fleet and found about 5,000 <code>llms.txt</code> requests out of 400 million total (0.001%), nearly all from SEO tools. <code>llms.txt</code> is a solution looking for a problem. The bots it was designed for don't look for it.</p> <p>So should you add Markdown support to your site? Probably not. There is no clear benefit today. It does not reduce crawl traffic, and I can't demonstrate that it improves how AI systems use your content.</p> <p>We do know that AI systems love Markdown, and they fetch it when it is available. At best, it may become more useful over time.</p> <p>If it is easy to add and you enjoy experimenting, go ahead. If it takes real effort, spend that effort on your content instead. What still works is what has always worked: clear writing, authoritative content, and timely publishing.</p> Drupal 25th Anniversary Gala at DrupalCon Chicago https://dri.es/drupal-25th-anniversary-gala-at-drupalcon-chicago https://dri.es/drupal-25th-anniversary-gala-at-drupalcon-chicago Tue, 03 Mar 2026 10:55:07 -0500 <p><figure><img src="https://dri.es/files/cache/drupal/25th-anniversary-gala-1280w.png" alt="Graphic reading &amp;#039;Drupal 25th Anniversary Gala&amp;#039; over a purple-lit ballroom with chandeliers and silhouetted guests." width="1280" height="850" /> </figure> </p> <p>There is a big party happening at DrupalCon Chicago, and I can't wait.</p> <p>On March 24th, we're celebrating Drupal's 25th Anniversary with a gala from 7–10 pm CT. It's a separate ticketed event, not included in your DrupalCon registration.</p> <p>Some of Drupal's earliest contributors are coming back for this, including a few who haven't attended DrupalCon in years. That alone makes it special.</p> <p>If you've been part of Drupal's story, whether for decades or just a few months, I'd love for you to be there. It's shaping up to become a memorable night.</p> <p>The dress code is &quot;Drupal Fancy&quot;. That means anything from gowns and black tie, to your favorite Drupal t-shirt. If you've ever wanted an excuse to dress up for a Drupal event, this is it!</p> <p>Tickets are $125, with a limited number of $25 tickets underwritten by sponsors so cost isn't a barrier. All tickets must be purchased in advance. They won't be available at the door. Registration closes March 18th, so <a href="https://www.zeffy.com/en-US/ticketing/drupal-25th-anniversary-gala">grab your tickets</a> soon.</p> <p>Organizations can reserve a table for their team. Even better, invite a few contributors to join you. It's a great way to <a href="https://www.zeffy.com/en-US/ticketing/drupal-25th-anniversary-gala-sponsorship">give back</a> to the people who helped build what your business runs on.</p> <p>For questions or sponsorship opportunities, please reach out to <a href="https://www.drupal.org/u/farriss">Tiffany Farriss</a>, who is serving as Gala Chair and part of the team coordinating the celebration.</p> <p>Know someone who should be there? Share this with them.</p> <p>What matters most is that you're there. I can't wait to celebrate together in Chicago.</p> Skiing in Saint-Gervais, France https://dri.es/skiing-in-saint-gervais-france https://dri.es/skiing-in-saint-gervais-france Tue, 24 Feb 2026 05:10:23 -0500 <p>Last week, we went on a ski trip in Saint-Gervais, France. For the first time, Axl wasn't with us. He's off at university now, and his school breaks no longer line up with Stan's. So Stan and I had a lot of father-son time on the slopes.</p> <p>Our friends Alexis and Héloïse were also on the trip with us, and Alexis captured this short video one of the days. I love it. Thank you, <a href="https://www.herbosch-architects.com/">Alexis</a>!</p> <p><figure><div style="position: relative; padding-bottom: 56.25%; height: 0"><iframe src="https://www.youtube-nocookie.com/embed/Tmm-eUXyDaE" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%" loading="lazy" title="YouTube video" allowfullscreen></iframe></div></figure></p> My Web3 site survived four years of neglect https://dri.es/my-web3-site-survived-four-years-of-neglect https://dri.es/my-web3-site-survived-four-years-of-neglect Mon, 23 Feb 2026 03:56:44 -0500 <p><figure><img src="https://dri.es/files/cache/blog/web3-exploration-1280w.jpg" alt="Two people on a platform observe a decentralized web of nodes." width="1280" height="853" /> </figure> </p> <p>Four years ago, <a href="https://dri.es/my-first-web3-webpage">I published my first Web3 webpage</a> using IPFS and ENS. I uploaded a simple &quot;Hello World&quot; HTML file, pointed <code>dries.eth</code> at it, and left it there. <a href="https://dri.es/two-years-later-is-my-web3-website-still-standing">Two years later</a>, I found it still running.</p> <p>I haven't touched it since. Today, on the experiment's four-year anniversary, I checked again. It's still up at <a href="https://dries.eth.limo/">dries.eth.limo</a>. Four years of total neglect, and the page loads just fine.</p> <p>When I checked two years ago, every service I used was still operational. I called that &quot;really encouraging&quot;. That optimism aged poorly.</p> <p>Today, half the services have shut down, restricted access, or pivoted entirely:</p> <ul> <li> <p><a href="https://fleek.co/">Fleek</a>, a platform I used to pin my content, <a href="https://ipshipyard.com/blog/2026-ipfs-self-hosting-migration/">shut down its hosting service</a> on January 31, 2026. They pivoted to AI.</p> </li> <li> <p><a href="https://infura.io/">Infura</a> was acquired by <a href="https://metamask.io/">MetaMask</a> and <a href="https://docs.metamask.io/services/reference/ipfs/">closed its IPFS service to new users</a>.</p> </li> <li> <p><a href="https://web3.storage">Web3.storage</a> rebranded to <a href="https://storacha.network/">Storacha</a>, and dropped IPFS pinning altogether.</p> </li> <li> <p><a href="https://blog.cloudflare.com/cloudflares-public-ipfs-gateways-and-supporting-interplanetary-shipyard/">Cloudflare sunset its public IPFS gateways</a>.</p> </li> <li> <p><a href="https://labs.scaleway.com/en/ipfs-pinning/">Scaleway shut down its IPFS pinning service</a>.</p> </li> </ul> <p>Of the original services, <a href="https://pinata.cloud/">Pinata</a> is still focused on IPFS. I logged in and my &quot;Hello World&quot; HTML file is still there. And <a href="https://eth.limo/">eth.limo</a>, the ENS gateway that lets anyone access <code>.eth</code> sites in a normal browser, still works.</p> <h2>Technically robust, commercially fragile</h2> <p>IPFS content exists only as long as someone chooses to host it. In 2022, my HTML file was pinned on Fleek, Pinata, Infura, and a friend's node. Today, it comes down to Pinata's free tier. My web3 page is hanging by a thread.</p> <p>That sounds fragile, and in one sense it is. But the protocol is working as designed. IPFS doesn't promise permanence. It promises that content is addressable, verifiable, and can be kept alive by anyone who cares enough to pin it.</p> <p>The durability of content on IPFS scales with how much people care about it. No one really cares about my &quot;Hello World&quot; page, so it's not being pinned. If this were dissident journalism or censored speech, people would likely pin it.</p> <p>If you run an IPFS node and want to help keep my page alive, feel free to pin it: <code>ipfs pin add bafybeibbkhmln7o4ud6an4qk6bukcpri7nhiwv6pz6ygslgtsrey2c3o3q</code>.</p> <p>Of course, I could make it more robust myself by pinning it on additional services or running my own node. Instead, I relied on third parties. With no node of my own, I'm entirely dependent on pinning services and other users to keep it alive.</p> <p>The real story isn't fragility. It's economics. There may simply not be enough demand for decentralized storage to support a healthy market of providers. Companies keep entering, failing to find a business model, and pivoting away.</p> <p>Traditional hosting is cheap, reliable, and familiar. The people who need censorship resistance are a narrow group, and everyone else has little reason to switch, myself included. And to be fair, replacing everyday web hosting was probably never IPFS's goal.</p> <p>I still love IPFS as a protocol and the ideas behind it. But it feels like the ecosystem around it is commercially thin, and getting thinner.</p> <p>I've written before about the idea of a <a href="https://dri.es/a-raid-for-web-content">RAID for web content</a>. Rather than relying on a single system, the goal is redundancy across multiple layers. I'd like to experiment more with IPFS and make it one of those layers.</p> <h2>Browser support got worse, not better</h2> <p>In 2022, mainstream browsers didn't support ENS or IPFS natively, except for <a href="https://brave.com/">Brave</a>. Brave included a built-in IPFS node that could resolve <code>ipfs://</code> and <code>ipns://</code> addresses directly.</p> <p>In August 2024, Brave <a href="https://brave.com/blog/ipfs-support/">removed that integration</a>. Fewer than 0.1% of users had ever used it, and the support costs were too high.</p> <p>Chrome, Firefox, and Safari still don't support ENS or IPFS natively. A <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1354807">Firefox issue for adding IPFS support</a> has been open since 2017, with no plans to implement it. The IPFS community continues pushing for <a href="https://discuss.ipfs.tech/t/browsers-standards-work-2026-call-for-community-input/19917">browser standards work</a>, but native protocol support seems like a long way off.</p> <p>Today, the easiest way to visit a <code>.eth</code> site is still through a gateway like <a href="https://eth.limo/">eth.limo</a>. You append <code>.limo</code> to the ENS name and visit it in any browser. It works, but it's a centralized bridge to a decentralized system, which is a little ironic.</p> <h2>Gas fees dropped 99%</h2> <p>Not everything got worse. In <a href="https://dri.es/my-first-web3-webpage">my original post</a>, I called out the cost of updating an ENS record as a major barrier. When content changes on IPFS, its hash changes too. To keep <code>dries.eth</code> pointing to the latest version, that new address has to be written to Ethereum, which costs gas.</p> <p>Updating my content on Ethereum cost me $11.69 in 2022 and $4.08 in 2024. If I wanted to update it today, it would cost roughly one cent.</p> <p>Average Ethereum gas prices now sit around 0.03 to 0.05 Gwei, compared to 30 to 50 Gwei when I first set this up. That is roughly a thousand times cheaper.</p> <p>Two things drove this.</p> <p>First, Ethereum roughly doubled the computation it can process per block over 2025. Validators gradually raised the gas limit, and the <a href="https://ethereum.org/roadmap/fusaka/">Fusaka upgrade</a> in December formally pushed it from 30 million to 60 million.</p> <p>Second, many applications migrated to Layer 2 networks. These are separate blockchains that batch up transactions and settle them back to Ethereum in bulk. As traffic moved off the main chain, congestion and fees dropped further.</p> <p>The impact on ENS is dramatic. Just this month, ENS Labs <a href="https://www.theblock.co/post/388932/ens-labs-scraps-namechain-l2-shifts-ensv2-fully-ethereum-mainnet">cancelled its planned Layer 2 blockchain called &quot;Namechain&quot;</a> because Ethereum's main network got so inexpensive that the Layer 2 became unnecessary. Nick Johnson, ENS co-founder and lead developer, noted that subsidizing 100% of all ENS transactions at current gas prices would cost about $10,000 per year.</p> <h2>A mixed scorecard</h2> <p>Four years in, the technology is better than ever but the market around it is worse. The IPFS protocol seems sound. ENS records are permanent. Gas fees have nearly vanished. But the commercial ecosystem for decentralized hosting has steadily thinned.</p> <p>I wrote in 2022 that &quot;IPFS and ENS offer limited value to most website owners, but tremendous value to a very narrow subset&quot;. Four years later, that assessment holds true.</p> <p>AI also absorbed most of the tech industry's attention and capital. Web3 funding dropped sharply. Fleek's pivot from IPFS hosting to AI inference feels symbolic.</p> <p>Will I keep the experiment going? Of course. But it's probably time to add a few more pins and stop relying on free tiers. The protocols don't need my help. The ecosystem apparently does.</p> A better way to follow Drupal development https://dri.es/a-better-way-to-follow-drupal-development https://dri.es/a-better-way-to-follow-drupal-development Thu, 19 Feb 2026 11:14:58 -0500 <p>I've been reading <a href="https://www.drupal.org/project/drupal">Drupal Core</a> commits for more than 15 years. My workflow hasn't changed much over time. I subscribe to the <a href="https://git.drupalcode.org/project/drupal/-/commits/11.x?format=atom">Drupal Core commits RSS feed</a>, and every morning, over coffee, I scan the new entries. For many of them, I click through to the issue on Drupal.org and read the summary and comments.</p> <p>That workflow served me well for a long time. But when <a href="https://dri.es/tag/drupal-starshot">Drupal Starshot</a> expanded my focus beyond <a href="https://www.drupal.org/project/drupal">Drupal Core</a> to include <a href="https://www.drupal.org/project/cms">Drupal CMS</a>, <a href="https://www.drupal.org/project/canvas">Drupal Canvas</a>, and the <a href="https://www.drupal.org/project/ai">Drupal AI initiative</a>, it became much harder to keep track of everything. All of this work happens in the open, but that doesn't make it easy to follow.</p> <p>So I built a small tool I'm calling <a href="https://github.com/dbuytaert/drupal-digests">Drupal Digests</a>. It watches the Drupal.org issue queues for Drupal Core, Drupal CMS, Drupal Canvas, and the Drupal AI initiative. When something noteworthy gets committed, it feeds the discussion and diff to AI, which writes me a summary: what changed, why it matters, and whether you need to do anything. You can see <a href="https://github.com/dbuytaert/drupal-digests/blob/main/issues/drupal-ai/3556181.md">an example summary</a> to get a feel for the format.</p> <p>Each issue summary currently lives as its own Markdown file in a <a href="https://github.com/dbuytaert/drupal-digests/tree/main/issues">GitHub repository</a>. Since I still like my morning coffee and RSS routine, I also generate <a href="https://github.com/dbuytaert/drupal-digests/tree/main/feeds">RSS feeds</a> that you can subscribe to in your favorite reader.</p> <p>I built this to scratch my own itch, but realized it could help with something bigger. Staying informed is one of the hardest parts of contributing to a large Open Source project. These digests can help new contributors ramp up faster, help experienced module maintainers catch API changes, and make collaboration across the project easier.</p> <p>I'm still tuning the prompts. Right now it costs me less than $2 a day in tokens, so I'm committed to running it for at least a year to see whether it's genuinely useful. If it proves valuable, I could imagine giving it a proper home, with search, filtering, and custom feeds.</p> <p>For now, <a href="https://github.com/dbuytaert/drupal-digests">subscribe to a feed</a> and tell me what you think.</p> Drupal's AI roadmap for 2026 https://dri.es/drupal-ai-roadmap-for-2026 https://dri.es/drupal-ai-roadmap-for-2026 Wed, 11 Feb 2026 14:41:09 -0500 <p><figure><img src="https://dri.es/files/cache/drupal/drupal-ai-roadmap-2026-1280w.png" alt="Graphic banner reading &amp;quot;Drupal&amp;#039;s AI roadmap for 2026&amp;quot; with a futuristic illustration of a person standing beneath floating, colorful sci-fi structures in the sky." width="1280" height="850" fetchpriority="high" /> </figure> </p> <p>For the past months, the AI Initiative Leadership Team has been working with <a href="https://www.drupal.org/ai/makers">our contributing partners</a> to define what the Drupal AI initiative should focus on in 2026. That plan is now ready, and I want to share it with the community.</p> <p>This roadmap builds directly on the strategy we outlined in <a href="https://dri.es/accelerating-ai-innovation-in-drupal">Accelerating AI Innovation in Drupal</a>. That post described the direction. This plan turns it into concrete priorities and execution for 2026.</p> <p>The full plan is <a href="https://dri.es/files/drupal-ai-roadmap-2026.pdf">available as a PDF</a>, but let me explain the thinking behind it.</p> <p>Producing consistently high-quality content and pages is really hard. Excellent content requires a subject matter expert who actually knows the topic, a copywriter who can translate expertise into clear language, someone who understands your audience and brand, someone who knows how to structure pages with your component library, good media assets, and an SEO/AEO specialist so people actually discover what you made.</p> <p>Most organizations are missing at least some of these skillsets, and even when all the people exist, coordinating them is where everything breaks down. We believe AI can fill these gaps, not by replacing these roles but by making their expertise available to every content creator on the team.</p> <p>For large organizations, this means stronger brand consistency, better accessibility, and improved compliance across thousands of pages. For smaller ones, it means access to skills that were previously out of reach: professional copywriting, SEO, and brand-consistent design without needing a specialist for each.</p> <p>Used carelessly, AI just makes these problems worse by producing fast, generic content that sounds like everything else on the internet. But used well, with real structure and governance behind it, AI can help organizations raise the bar on quality rather than just volume.</p> <p><a href="https://www.drupal.org/">Drupal</a> has always been built around the realities of serious content work: structured content, workflows, permissions, revisions, moderation, and more. These capabilities are what make quality possible at scale. They're also exactly <a href="https://dri.es/why-drupal-is-built-for-the-ai-era">the foundation AI needs</a> to actually work well.</p> <p>Rather than bolting on a chatbot or a generic text generator, we're embedding AI into the content and page creation process itself, guided by the structure, governance, and brand rules that already live in Drupal.</p> <p>For website owners, the value is faster site building, faster content delivery, smarter user journeys, higher conversions, and consistent brand quality at scale. For digital agencies, it means delivering higher-quality websites in less time. And for IT teams, it means less risk and less overhead: automated compliance, auditable changes, and fewer ad hoc requests to fix what someone published.</p> <p>We think the real opportunity goes further than just adding AI to what we already have. It's also about connecting how content gets created, how it performs, and how it gets governed into one loop, so that what you learn from your content actually shapes what you build next.</p> <p>The things that have always made Drupal good at content are the same things that make AI trustworthy. That is not a coincidence, and it's why we believe Drupal is the right place to build this.</p> <h3>What we're building in 2026</h3> <p>The 2026 plan identifies eight capabilities we'll focus on. Each is described in detail in the <a href="https://dri.es/files/drupal-ai-roadmap-2026.pdf">full plan</a>, but here is a quick overview:</p> <ul> <li><strong>Page generation</strong> - Describe what you need and get a usable page, built from your actual design system components</li> <li><strong>Context management</strong> - A central place to define brand voice, style guides, audience profiles, and governance rules that AI can use</li> <li><strong>Background agents</strong> - AI that works without being prompted, responding to triggers and schedules while respecting editorial workflows</li> <li><strong>Design system integration</strong> - AI that builds with your components and can propose new ones when needed</li> <li><strong>Content creation and discovery</strong> - Smarter search, AI-powered optimization, and content drafting assistance</li> <li><strong>Advanced governance</strong> - Batch approvals, branch-based versioning, and comprehensive audit trails for AI changes</li> <li><strong>Intelligent website improvements</strong> - AI that learns from performance data, proposes concrete changes, and gets smarter over time through editorial review</li> <li><strong>Multi-channel campaigns</strong> - Create content for websites, social, email, and automation platforms from a single campaign goal</li> </ul> <p>These eight capabilities are where the official AI Initiative is focusing its energy, but they're not the whole picture for AI in Drupal. There is a lot more we want to build that didn't make this initial list, and we expect to revisit the plan in six months to a year.</p> <p>We also want to be clear: community contributions outside this scope are welcome and important. Work on migrations, chatbots, and other AI capabilities continues in the broader Drupal community. If you're building something that isn't in our 2026 plan, keep going.</p> <h3>How we're making this happen</h3> <p>Over the past year, we've brought together organizations willing to contribute people and funding to the AI initiative. Today, <a href="https://drupal.org/ai/makers">28 organizations support the initiative</a>, collectively pledging more than 23 full-time equivalent contributors. That is over 50 individual contributors working across time zones and disciplines.</p> <p>Coordinating 50+ people across organizations takes real structure, so we've hired two dedicated teams from among our partners:</p> <ul> <li><a href="https://www.qed42.com/">QED42</a> is focused on innovation, pushing forward on what is next.</li> <li><a href="https://www.1xinternet.com/">1xINTERNET</a> is focused on productization, taking what we've built and making it stable, intuitive, and easy to install.</li> </ul> <p>Both teams are <a href="https://www.drupal.org/project/issues/search?issue_tags=AI%20Initiative%20Sprint">creating backlogs</a>, managing issues, and giving all our contributors clear direction. You can read more about <a href="https://www.drupal.org/about/starshot/initiatives/ai/blog/from-strategy-to-execution-how-the-drupal-ai-initiative-is-scaling-delivery-for-2026">how we are going from strategy to execution</a>.</p> <p>This is a new model for Drupal. We're testing whether open source can move faster when you pool resources and coordinate in a new way.</p> <h3>Get involved</h3> <p>If you're a contributing partner, we're asking you to align your contributions with this plan. The <a href="https://www.drupal.org/project/issues/ai_initiative?categories=All">prioritized backlogs</a> are in place, so pick up something that fits and let's build.</p> <p>If you're not a partner but want to contribute, jump in. The prioritized backlogs are open to everyone.</p> <p>And if you want to <a href="https://new.drupal.org/ai/become-a-maker">join the initiative as an official partner</a>, we'd absolutely welcome that.</p> <p>This plan wasn't built in a room by itself. It's the result of collaboration across 28 sponsoring organizations who bring expertise in UX, core development, QA, marketing, and more. Thank you.</p> <p>We're building something new for Drupal, in a new way, and I'm excited to see where it goes.</p> The Software Sovereignty Scale https://dri.es/the-software-sovereignty-scale https://dri.es/the-software-sovereignty-scale Tue, 10 Feb 2026 05:28:31 -0500 <p><figure><img src="https://dri.es/files/images/blog/software-sovereignty-scale.png" alt="A five-level digital sovereignty scale ranked from A to E. A represents copyleft open source with no relicensing risk, B copyleft open source with relicensing risk, C permissive open source, D European proprietary software, and E foreign proprietary software. Higher grades indicate greater control and sovereignty." width="881" height="383" fetchpriority="high" /> </figure> </p> <p>&quot;Buy European&quot; is becoming Europe's rallying cry for digital sovereignty. The logic is intuitive: if you want independence from American technology, buy from European companies instead.</p> <p>However, I think &quot;Buy European&quot; gets one thing right and one thing wrong. It's right that Europe benefits from a stronger technology industry. But buying European does not guarantee sovereignty.</p> <p>Sovereignty is <em>not</em> about where a company is headquartered or where software was originally written. It is about whether you retain &quot;freedom of action&quot; over the technology you depend on, even if the vendor changes strategy, gets acquired, or disappears.</p> <p>The right question to ask about any technology: if conditions change, do you retain the freedom to keep using, modifying, and maintaining this software?</p> <p>When evaluating sovereignty, it is not enough to ask how much control you have today. You also need to ask how much of that control is structurally protected, built into the legal and community foundations, so it can't be taken away tomorrow.</p> <p>The proposed scale measures structural protection. It is not a ranking of openness, nor does it capture every dimension of sovereignty. The scale also does not imply that one license is always better than another.</p> <p>I used five levels, modeled on Europe's familiar A-through-E labels for <a href="https://en.wikipedia.org/wiki/European_Union_energy_label">energy efficiency</a> and <a href="https://en.wikipedia.org/wiki/Nutri-Score">food nutrition</a>, from structurally sovereign to fully dependent. Frameworks like the <a href="https://commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf">European Commission's Cloud Sovereignty Framework</a> do not yet make these structural distinctions. This scale aims to improve on what exists and is used today, and I expect it to improve further through scrutiny and feedback.</p> <p>The most important distinction in the scale is between Open Source and proprietary. Grades A, B and C all require Open Source and give you freedom of action: the right to use, modify, and maintain the software independently, forever. The differences between A, B, and C reflect how structurally protected that freedom is against acquisition, relicensing, or a change in a project's strategic direction.</p> <div class="large"> <table> <thead> <tr> <th></th> <th>Type</th> <th>Can someone take it away?</th> <th>Examples</th> </tr> </thead> <tbody> <tr> <td><span style="display: inline-block; width: 30px; height: 30px; line-height: 30px; border-radius: 6px; background: #006B3F; color: white; font-weight: 700; text-align: center;">A</span></td> <td><strong>Copyleft + no relicensing risk</strong></td> <td><strong style="color: #006B3F;">No.</strong> The code cannot be relicensed, and all derivatives must be Open Source forever.</td> <td>Linux, Drupal, WordPress</td> </tr> <tr> <td><span style="display: inline-block; width: 30px; height: 30px; line-height: 30px; border-radius: 6px; background: #50B849; color: white; font-weight: 700; text-align: center;">B</span></td> <td><strong>Copyleft + relicensing risk</strong></td> <td><strong style="color: #50B849;">No.</strong> All derivatives must be Open Source. But future versions can be relicensed if copyright is concentrated.</td> <td>MySQL &rarr; MariaDB</td> </tr> <tr> <td><span style="display: inline-block; width: 30px; height: 30px; line-height: 30px; border-radius: 6px; background: #C0D731; color: black; font-weight: 700; text-align: center;">C</span></td> <td><strong>Permissive Open Source</strong></td> <td><strong style="color: #50B849;">No.</strong> But the license allows proprietary derivatives that can shift value away from the open project.</td> <td>Redis (relicensed), Valkey (fork)</td> </tr> <tr> <td><span style="display: inline-block; width: 30px; height: 30px; line-height: 30px; border-radius: 6px; background: #FEF200; color: black; font-weight: 700; text-align: center;">D</span></td> <td><strong>European proprietary software</strong></td> <td><strong style="color: #e63e11;">Yes.</strong> A single acquisition transfers all control. Funding can disappear. You're a customer, not a stakeholder.</td> <td>Skype</td> </tr> <tr> <td><span style="display: inline-block; width: 30px; height: 30px; line-height: 30px; border-radius: 6px; background: #e63e11; color: white; font-weight: 700; text-align: center;">E</span></td> <td><strong>Foreign proprietary software</strong></td> <td><strong style="color: #e63e11;">Already taken.</strong> Subject to the vendor's pricing, roadmap, and their government's jurisdiction. You're a customer, not a stakeholder.</td> <td>Microsoft, Oracle, Salesforce</td> </tr> </tbody> </table> </div> <h3>Jurisdictional obligations change with ownership</h3> <p>At the bottom, <strong>grade E</strong>, is foreign proprietary software: no source code, no right to modify, and no alternative if the vendor changes terms. Your vendor is subject to its home government's jurisdiction, and by extension, so is your data.</p> <p><strong>Grade D</strong> is European proprietary software, which is where &quot;Buy European&quot; usually comes in. It has real benefits: European jurisdiction, GDPR alignment, local accountability, and it keeps investment circulating in the European ecosystem. As someone who has started companies and <a href="https://dri.es/angel-investments">invests in startups</a>, I want more technology companies to succeed, not fewer. But &quot;European&quot; can be a temporary property of a company: it can change with a single board meeting.</p> <p><a href="https://en.wikipedia.org/wiki/Skype">Skype</a> was founded by a Swede and a Dane, built by Estonian engineers, and headquartered in Luxembourg. eBay acquired it in 2005, and Microsoft acquired it in 2011. The eBay transaction turned a world-leading European technology into an American one, and it was cemented with the Microsoft deal.</p> <p>So ownership and jurisdiction matter, but they're not enough. A European company can be acquired tomorrow. Open Source offers something more important: it separates the code from any single company or country.</p> <h3>Not all Open Source is equally sovereign</h3> <p>Open Source is what makes real sovereignty possible. At the same time, Open Source sovereignty exists on a spectrum. The level of protection comes down to two legal levers: the <em>license</em> itself, and the <em>copyright ownership</em>, which determines who has the power to change the license.</p> <p><strong>Grade C</strong> is Open Source under a <a href="https://en.wikipedia.org/wiki/Permissive_software_license">permissive license</a> like BSD, MIT, or Apache. You can view the code and fork it if needed, but the license does not require improvements to remain open. A company can take the code, build on it, and release a proprietary version.</p> <p>The relicensing risk applies mainly to single-vendor projects. When a permissive project is hosted at a vendor-neutral foundation like Apache or Eclipse, the foundation holds the governance and the relicensing risk is minimized. The relicensing risk in grade C mainly comes from corporate control, not from the license itself.</p> <p><a href="https://en.wikipedia.org/wiki/Redis">Redis</a> shows how this dynamic unfolds. It was Open Source under a BSD license for fifteen years. In March 2024, Redis Ltd. <a href="https://redis.io/blog/redis-adopts-dual-source-available-licensing/">relicensed it under restrictive terms</a> that the <a href="https://opensource.org/">Open Source Initiative</a> does not approve as Open Source.</p> <p>Fortunately, the community forked the last open version as <a href="https://en.wikipedia.org/wiki/Valkey">Valkey</a>, and Valkey is thriving. That is the strength of permissive Open Source: you can escape when terms change. Governments were fortunate Redis was forked, but the structural risk remains, and in many cases end users are not so lucky. They are left maintaining the software themselves, which can be costly and unsustainable.</p> <p><strong>Grade B</strong> is Open Source under a <a href="https://en.wikipedia.org/wiki/Copyleft">copyleft license</a> like the GPL. Copyleft adds a protection permissive licenses lack: any derivative of released code must also remain Open Source. For policymakers, this is a meaningful upgrade.</p> <p>This is the level that saved MySQL. <a href="https://dri.es/the-history-of-mysql-ab">MySQL AB</a>, the Swedish company behind the MySQL database, released it under the GPL. When Oracle acquired MySQL through the Sun Microsystems deal, the GPL ensured the code remained open. Michael Widenius, MySQL's original creator, took the code and built <a href="https://en.wikipedia.org/wiki/MariaDB">MariaDB</a>, which he had to make available under the GPL.</p> <p>And because MariaDB was forced to inherit MySQL's GPL license, it must remain open as well. This is sometimes referred to as the &quot;viral&quot; nature of the GPL. No future acquirer can make MariaDB proprietary. This is the difference between copyleft and a permissive license: copyleft lets someone fork <em>and</em> forces all forks to stay open.</p> <p>But grade B still has one limitation. When copyright is concentrated, the holder can release future versions under a different license. The existing code is protected by the GPL, but the project's future direction depends on who holds the copyright and how they are governed.</p> <p>Some projects amplify this risk by requiring contributors to sign a <a href="https://en.wikipedia.org/wiki/Contributor_license_agreement">Contributor License Agreement</a>, or CLA, which grants the project owner the right to relicense contributed code. <a href="https://en.wikipedia.org/wiki/Elasticsearch">Elasticsearch</a>, founded in Amsterdam, used its CLA in 2021 to relicense from Apache 2.0 to a non-open-source license, despite having over 1,500 contributors.</p> <p>Finally, <strong>grade A</strong> is copyleft Open Source with no relicensing risk. This typically happens when copyright is governed by a neutral foundation, or when hundreds or thousands of contributors each own their portion of the code. In that case, relicensing would require consent from every contributor, and any refusal would force the project to rewrite that code from scratch. The more distributed the ownership, the harder relicensing becomes.</p> <p><a href="https://www.drupal.org/">Drupal</a> has had contributions from tens of thousands of people <a href="https://dri.es/25-years-of-drupal-what-i-have-learned">across 25 years</a>, which makes relicensing structurally impossible. No acquisition, no board vote, no change in strategy can take these projects away from the people who build and depend on them. Drupal's code is structurally sovereign by design.</p> <p>Of course, copyleft projects with fewer independent contributors and less history could be easier to relicense. There are simply fewer people whose consent would be required to change the license.</p> <h3>Sovereignty is a long-term commitment</h3> <p>Moving from E to D is progress. Moving from D to C is what really matters. Above C, the scale highlights smaller but still important tradeoffs, so when governments choose a lower grade, they do so knowingly rather than unknowingly.</p> <p>An Open Source project that loses important funding often needs investment to remain viable. But unlike acquisition or relicensing, funding risk is largely within the EU's control through <a href="https://dri.es/funding-open-source-for-digital-sovereignty">government procurement</a> and <a href="https://dri.es/funding-open-source-like-public-infrastructure">public investment</a>.</p> <h3>Recommendation for the European Commission</h3> <p>Sovereignty involves many things: data location, supply chains, technical talent, and standards. Licensing and copyright form the structural foundation because they determine whether legal independence is even possible.</p> <p>The <a href="https://commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf">European Commission's Cloud Sovereignty Framework</a> reflects this broader view. It evaluates cloud software across eight sovereignty objectives, each scored and weighted into a composite sovereignty score. Technology Sovereignty (SOV-6), the objective that covers open licensing, accounts for 15% of that composite. Within it, open licensing is one contributing factor among four, alongside open standards, architectural transparency, and EU computing independence.</p> <div class="large"> <figure><img src="https://dri.es/files/images/blog/eu-cloud-sovereignty-framework-sov6.png" alt="A table from the European Commission&amp;#039;s Cloud Sovereignty Framework showing the four contributing factors for Technology Sovereignty (SOV-6): integration through open APIs and standards, software accessible under open licenses, visibility into design and architecture, and EU independence in high-performance computing." width="1154" height="404" /> <figcaption><em>The four contributing factors within Technology Sovereignty (SOV-6). Open licensing is one among four. Source: <a href="https://commission.europa.eu/document/download/09579818-64a6-4dd5-9577-446ab6219113_en?filename=Cloud-Sovereignty-Framework.pdf">Cloud Sovereignty Framework</a>, version 1.2.1, October 2025.</em></figcaption> </figure> </div> <p>This dramatically underweights what matters most: Open Source. Open standards, transparency, and computing independence are capabilities that proprietary software can also provide. They can change if a vendor is acquired or shifts strategy.</p> <p>Open licensing creates permanent, irrevocable rights to use and modify the software regardless of what happens to the vendor. It is the only contributing factor within Technology Sovereignty (SOV-6) that makes sovereignty structural rather than situational, yet the framework does not distinguish it from the others. Nor does it recognize that open licensing underpins the other sovereignty objectives: operational independence, supply chain resilience, and jurisdictional flexibility all depend on whether you have the right to move, modify, and maintain the software. I would encourage the Commission to strengthen its Technology Sovereignty objective in three ways:</p> <ol> <li> <p><strong>Give open licensing significantly more weight in the sovereignty score.</strong> Open licensing is not comparable to the other three contributing factors in Technology Sovereignty. It is the only one that creates permanent, irrevocable rights. The framework should reflect that.</p> </li> <li> <p><strong>Distinguish between license types.</strong> Permissive licenses (BSD, MIT, Apache) place no obligation on derivatives to remain open. Copyleft licenses (GPL, AGPL) require derivative works to be released under the same open terms.</p> </li> <li> <p><strong>Assess copyright concentration and relicensing risk.</strong> Not all projects carry equal risk of relicensing. A project controlled by a single company can be relicensed. A project with distributed copyright ownership, or one governed by a vendor-neutral foundation, is far more resistant to relicensing. This is the difference between a revocable and an irrevocable commitment to openness.</p> </li> </ol> <p>Open licensing is not one consideration among many. It is the foundation that makes all other sovereignty objectives durable. I think European procurement policy should weight it accordingly. The Software Sovereignty Scale can help: when a government selects a content management system for its public websites or a database for its national health records, it should know the structural sovereignty grade of the technology it depends on.</p> <p>For critical software, the question is simple: how easy is it for someone to take the software away from us?</p> <p><em>Special thanks to <a href="https://www.linkedin.com/in/sachikomuto/">Sachiko Muto</a> and <a href="https://www.drupal.org/u/bertboerland">Bert Boerland</a> for their review and contributions to this blog post.</em></p> Self-improving AI skills https://dri.es/self-improving-ai-skills https://dri.es/self-improving-ai-skills Fri, 30 Jan 2026 15:41:12 -0500 <p>If you read one thing this week, make it <a href="https://simonwillison.net/2026/Jan/30/moltbook/">Simon Willison's post on Moltbook</a>. <a href="https://moltbook.com">Moltbook</a> is a social network for AI agents. To join, you tell your agent to read a URL. That URL points to a <a href="https://www.moltbook.com/skill.md">skill file</a> that teaches the agent how to join and participate.</p> <p>Visit Moltbook and you'll see something really strange: agents from around the world talking to each other and sharing what they've learned. Humans just watch.</p> <p>This is the most interesting bad idea I've seen in a while. And I can't stop thinking about it.</p> <p>When I work on my Drupal site, I sometimes use Claude Code with a custom <code>CLAUDE.md</code> skill file. It teaches the agent the steps I follow, like safely cloning my production database, [running PHPUnit tests](https://dri.es/phpunit-tests-for-drupal, clearing Drupal caches, and more.</p> <p>Moltbook agents share tips through posts. They're chatting, like developers on Reddit. But imagine a skill that doesn't just read those ideas, but finds other skill files, compares approaches, and pulls in the parts that fit. That stops being a conversation. That is a skill rewriting itself.</p> <p>Skills that learn from each other. Skills that improve by being part of a community, the way humans do.</p> <p>The wild thing is how obvious this feels. A skill learning from other skills isn't science fiction. It's a small step from what we're already doing.</p> <p>Of course, this is a terrible idea. It's a supply chain attack waiting to happen. One bad skill poisons everything that trusts it.</p> <p>This feels inevitable. The question isn't whether skills will learn from other skills. It's whether we'll have good sandboxes before they do.</p> <p>I've been writing a lot about AI to help figure out its impact on Drupal and our ecosystem. I've always tried to take a positive but balanced view. I explore it because it matters, and because ignoring it doesn't make it go away.</p> <p>But if I'm honest, I'm scared for what comes next.</p>