Weblog
Timo Stollenwerk: State of Plone
Keynote at Plone Conference 2026 in Maastricht.
I spent three days and nights working on my first website. Maybe I slept a few hours. What drove me, was enthusiasm, curiosity about a new technology. This still drives us today as Plone community.
Dunning-Kruger effect: the less you know about a topic, the more confident you feel. Afterwards you go all the way down, see the mess you made, and you think how am I going to maintain this? You see that when you keep it up.
Fast forward to 2026: Artificial Intelligence. You can build a small website in even a few minutes. Or a few hours if you want it more fancy. At first you feel on top of the world: this way I don't even have to work anymore.
But you still go all the way down. AI takes you part of the way, but you are not done. This is the same cycle as for my first website, but faster: the first 80 percent is very fast, but taking it all the way takes much longer.
It is a fundamental change. The speed is higher. Eliza is a program written in the 1960s, pretending to be human, in 420 lines of code. It pretty much turned anything you told it into a question back at you. The Eliza effect: people perceive intelligence, even when it is not really there.
Good news: the technology is not rocket science. We have open source LLMs. This gives digital sovereignty. Using AI is not that hard. More important is governance and trust between people. In the Plone community we have built trust between each other over the past 25 years. This prepares us for a wave of AI slop, better than most open source communities. We have dealt with this already a few years ago when a wave of enthusiastic potential Google Summer of Code students began sending in large AI-generated pull requests.
Short version: don't be a meat proxy, just passing an answer from AI to another person. This erodes trust and human relationships.
Be transparent: show how you got some answer. Read the answer that AI gave you before sending it on, and validate it. If you send it on, you take over responsibility.
- Q: "Can you build me a website in five minutes?"
- A: "Yes, but I won't take responsibility for it."
Licensing and attribution. Open source models are catching up with training material, but the top ones are from the US or China, and they don't care much about the legal effects.
What does AI meant for my website and CMS? 30-50 percent of your website visitors might be AI. Cloudflare reports 33.9 percent bots in the past 6 months of world traffic that they see. You still have search engine bots of course, now also AI bots and AI agents.
What do those bots want? They want your content. Plone is a Content Management System, so we have everything that they need. We have semantic HTML, sitemaps, REST API.
In Plone 6.3 (mid 2027) we are preparing enhancements.
- A guide for AT bots:
llms.txt. This can be pointers to main content or to REST API endpoints. - Retrieval-augmented generation (RAG). Ask AI anything and let it generate answers. So we need to think about REST API and content negotiation. REST API allows you to get json or html, but what is missing is markdown. We want to add this.
Within the Plone community we have the PLIP process: PLone Improvement Proposal. You can propose an improvement. We will first discuss if this could be something to do in an add-on, or in Plone core. For example standardize AI endpoints, PLIP 4235.
Bring your own agent: Model Context Protocol Server, PLIP 4213. I did not try agentic AI yet, where an agent does things on its own, and connect all systems. I am not brave enough for this, and don't want to give a company all my data.
We have other features in the pipeline for 6.3, apart from AI.
Plone 7 will be faster. Reduce the bundle size, improved editor experience, reuse components between Volto and Blicca, accessibility for editors. This year we have seven sprints, in which we speed up development of Plone.
Plone 7 will be innovation. See talk by Victor and Piero: State of Plone Volto and Aurora. Maurits will hold the state of Plone backend. There are six talks about Blicca (ClassicUI) during the conference, I am happy about the traction there. Three talks about Nick (alternative backend in NodeJS).
Plone Conference 2026
Introduction to the Plone Conference in Maastricht.
Cosent (Guido Stevens) is organising the conference. Syslab (Alex Pilz and friends) is assisting.
Our theme: own your digital future. Ownership is practical. What can you take responsibility for? Do you understand the systems that you run? Are you able to change them or are you merely allowed to use them by the grace of some large company.
Take responsibility together, especially when things need to improve.
"We have done this before." You will see this phrase a lot this week. It means we as community do not start from nothing. We know how to learn from each other, how to adapt, how to keep going together.
The conference is larger than the programmer. It is the questions after the sessions. You don't have to take a course before you become part of the community.
Show the part that did not work. Honest failures are more useful than only success stories.
We will talk about where Plone is now and where it is going. On Friday we have a digital autonomy and AI business track. How do you have a full system that is not dependent on a major component owned by someone else. Do you have control over the software you are using. How do you do that over a multi-year horizon. Reflecting on AI: it is very fluid, we don't know the shape it will take, but we will see real case studies from the field, and reflect on constraints. It is not a loose connection of talks, but we try to make a coherent story, building it up during the day.
At the weekend we build: sprints. Start thinking about what you would want to do. There is a link on the homepage where you can write sprint topics.
Please: talk to somebody new. It is not only the responsibility of newcomers, but also of old hands. You have a place here and a way to contribute.
This week exists because of you. Thank you speakers, trainers, volunteers.
Very special thank you to tkimnguyen, known now as Cool Kim. He was always there while organising, and always kind. And Rikupekka, thank you for organising last year's conference, and showing us what was possible. It was inspiring for us. I will never forget: noni.
Practical notes:
Maastricht is a very old and compact city. Some things to visit:
- Onze Lieve Vrouwebasiliek, medieval church, completely different atmosphere, maybe even attend a mass if that is your thing.
- Walk to the Helpoort (hell gate), also medieval.
Thank you to the sponsors, and to Maastricht.
If you are a speaker, please send us your slides: conf@plone.org.
We have place for open spaces. These are not presentations but conversations. Write a topic on a flip-over. This is self-organised.
Also: each day at the end we have lightning talks. One idea, a few minutes, about then per day. Register these on the flip-over as well.
Another idea: show your set-up laboratory. Show your editor, terminal, shortcuts, hardware, workflow. What saves you a detour: This gives others new ideas.
We built the programme. What this week becomes, belongs to all of us.
Lightning talks Friday
Lightning talks on Friday at Plone Conference 2025 in Jyväskylä, Finland.
Fred: Sprint introduction
This weekend we have the sprint. This is a happy get-together where we talk and code and organise ourselves. Maybe you can get started with the Seven project (codename for the new Volto version). But basically you can work on anything, Plone or not. We start at 9. There is a stand-up at 10 o' clock, and wrap-up around 17.
See the sprint doc where you can add your name if you want to participate.
See also the #sprint channel on Discord.
Mari: Casseroles and the Finnish welfare state
Finnish cuisine has a reputation for being simple, even on festive occasions. Rutabaga casserole dates back to 1700s. Those were harsh times for Finland: crop failures, famine, plauge, wars. Casserole was the best we could get. It got better with the potate revolution (1800s). The potato improved food security. Early 1900s: urbanization and emerging middle class. They could have left the rutabaga behind, and follow higher classes of other countries. But the casseroles symbolize the "good old times" and a shared history. Starting at 1950, more women leave their homes, so dishes need to be simpler, more convenient. The welfare society takes shape.
Martin: Membership
Who here is not a Plone Foundation member. Have you attended more than two conferences? Have you organised a conference? Then you should become a member, come on! Fill in the application.
Timo: vibe coding and AI-assisted development
I started getting into electronics and Raspberry PI, with ChatGPT 4. With my son we got a Pico Go. He wants results in five minutes, an app on his phone. Trying ChatGPT and Claude. My son created a website that way. Think like a programmer: I told it to use Bootstrap as it is a good basis. And then I thought of another pet project: get Plone contributor statistics, to see how many PR and commits people have created during the years. I used Claude Code for this, created something in two evenings. Then used this for a Plone multi core setup. https://github.com/kitconcept/solr-multicore
Jakob: Beethovensprint
Let meintroduce a music group from my home town. Alien Fight Club. Their gitarist is Kolja. He also takes pictures, for example at Beethovensprints.
Beethovensprint 18-22 May 2026. Afterwards FedCon from 22-24 May, also in Bonn.
The week after is Buschenschanksprint
Erico: Volto image editor
Demo in Volto. Very nice!
Erico: State of Plone Typing
There are more than 10,000 project on PyPI that claim to use typing. It helps to know and document what you are doing. Frontend uses similar things. In the backend: see type hints in for example plone.exportimport. And we are being bullied, popular IDEs complain when we don't have them.
Plone includes 30 years of code, even from before the datetime library existed. And 170 and more different packages. I suggest creating plone-stubs as library so we can start slowly edit types to places. I have a proof of concept.
Alex Pilz: How to attract young talent.
Thank you Jyväskylä for a wonderful Plone Conference 2025. The young people I took here, got a good experience of the community. I am from Syslab, Munich, Germany. We have been using Plone for a long time. We have never organised a conference. Munich is a nice place. But we will not host the Plone conference there. We have found a nice place, where I have found the love of my life: Maastricht, the Netherlands. 21-27 September.
Karel Calitz: It's okay to talk about yourself and feel good about it.
In my twenties I joined a Big Brother Big Sister organisation, where you become a big brother or big sister to a kid who had less luck in family. We had to talk about feelings there.
I did not like talking about myself, my projects, sharing my work. For my website I had to make a shift to talk about it. Studies show you gain confidence by talking about yourself. Putting it into practice: share your work without apology, celebrate small wins, practice self-compassion, let pride fuel confidence for the next challenge. Open source depends on people who want to share their work and talk about it.
Naomi Woods: Sala Secure Oy
I work at the university here. The future of authentication is inclusive. A cyber security expert can use a secure VPN, an MFA, etc, but can their mother use that, or will she just re-use her passwords? Traditional MFA is too complex for many users. Our solution: SalaLogin. Authenticate with biometrics to their own device. Not many secret keys to remember. In our tests, people enjoy using it. We are looking for pilot and first customers. Can you help?
Astrid: Meeting
Possibly, January 2026, let's meet in Stellenbosch in South Africa. A bit less code-y and more strategic, get some momentum for the year there. Let us know if you are interested.
Sally: Plone Add-on competition
41 Plone add-ons were nominated this week.
- 3rd place, 4 votes: collective.easyform, and "a boy got hero block" (please tell me what this is)
- 2nd place, 5 votes: volto-form-block including volto.formsupport
- 1st place, 6 votes: collective.exportimport
Photo competition
Winner is Jeremy, with the most-liked non-AI photo.
And see you at the sprints tomorrow.
Jayita Bhattacharyya: DSPy the Declarative Programming in the Era of AI
Talk by Jayita Bhattacharyya at Plone Conference 2025 in Jyväskylä, Finland.
See https://dspy.ai
DSPy is an open source declarative framework for building modular, self-improving AI systems using structured code and natural-language modules, enabling fast iteration, composability, and model-agnostic deployment.
Prompts are a great way of communicating with LLMs, but they need to be elaborate and exhaustive, hard to maintain when changing from one LLM to another.
DSPy: the vibe prompter via programming. Small demo. You can ask it to show the prompt that is has actually sent to the LLM. https://hamel.dev/blog/posts/prompt/
GEPA: the game changer. Generic Pareto. It is a framework for optimizing arbitrary systems composes of text components, like AI prompts, code snippets, or textual specs, against any evaluation metric. It employes LLMs to reflect on system behavior and user feedback.
[Interesting talk, but not my area of expertise and way too much to write down, so look at the slides.]
Rémi Dubois and Benoît Suttor: Jenkins Out, GitHub Actions In: How We Made the Leap
Talk by Rémi Dubois and Benoît Suttor at Plone Conference 2025 in Jyväskylä, Finland.
Here are the slides.
Legacy setup: single physical server, Ubuntu 14, Jenkins plus a lot of plugins, some Groovy pipelines of varying quality, hard to upgrade.
Why migrate? As you see, the Jenkins server was on its last legs, and we wanted to get more in line with the community. Why not Gitlab CI? We already had GitLab internally, but all Plone products are on GitHub, with all related GitHub Actions knowledge in the community.
We talked to our teams. Does the action workflow still suit your needs? What triggers the CI/CD? What would you improve?
We created the gha repository. This contains reusable composite actions. We use self-hosted action runners. These are defined in Docker images. They contain multiple Python versions, Plone buildout dependencies, etc.
Now a demo. When a PR is merged, a Docker image is built. When ready, it sends a message on Mattermost (similar to Slack). Then the new image is pulled, containers restarted. When a tag is created, this goes to production. We schedule that for the next day at 3 AM.
We kept an eye on observability, like the Mattermost notifications, also in case of problems.
Fun fact: the timing was perfect. The physical Jenkins server died due to disk failure a day before migration completed. We could not safe the data, but it was not needed.
Current WIP feature: shared reusable workflows on an organisation level. Align with plone.meta best practices.
