The event took place from Tuesday to Friday in the Prague O2 arena. In addition to several keynotes, including one by Drupal's original author Dries Buytaert, it offered sessions in several tracks for developers, webmasters and agencies. The program was complemented by presentations from sponsors and other companies at a number of booths in the conference area.
Organization is top notch. Except for the website and app
The organisers chose the conference venue very well. Public transport (tram and metro) was available, and participants were given a pass for free public transport for the whole conference. The cloakroom allowed to put away jackets and luggage. Meals were vegetarian, lunch was light, those who missed meat could reach for fish.
If I had something to complain about, it would be the clarity of the program. I have been criticizing DrupalCon websites for a long time. The fact that some of the lectures overlap and are listed below each other makes it very difficult to navigate them. This is not helped by the special conference app, which crashes frequently, reports certificate problems, and marking the talk I want to attend in it is a matter of long seconds. As one of the exhibitors said: worst app ever.
On the other hand, the mascot of the conference, the Czech Mole, Krtek, was a delight. Let's take a look at the highlights of the sessions I attended. Of course, this is just a selection, I wasn't at everything.
Opening keynote with representatives of Drupal initiatives
The very first talk of DrupalCon Prague 2022 brought several speakers to the stage to introduce us to several Drupal Initiatives. Lauri Eskola showed an improved dialog for working with inline images in the new CKEditor 5. He mentioned that the editor is already stable in the current version of Drupal, will be the default in Drupal 10, and it's time to upgrade the extension modules for it
Leslie Glynn talked about the Project Browser module. It allows you to install modules directly from the Drupal administration. Now the the module creators have to add nice logos and meaningful introductory labels. Gábor Hojtsy introduced the Project Update Bot. He regularly scans projects and generates patches to make it easier to upgrade modules for Drupal 10.
Neil Drumm talked about integrating GitLab into Drupal development and its modules. All development is moving to the new code environment, and the project information pages will remain on drupal.org. Gradually, this will also mean the end of patches. Marine Gandy introduced a new initiative to transition the localization server from Drupal 7 to 9.
Alex Pott came to talk about distributions and recipes. The initiative associated with them aims to make it easier to find distributions, which are now rather quietly sitting in the corner. Recipes in YAML format could quickly describe site setup, install modules, setup and create content. Recipes from Symfony Flex will be used as inspiration.
Ted Bowman introduced the Automatic Updates module. It is already in stable version, supports Composer installations and Project Browser module.
Layout Paragraphs - more pleasant to work with page sections
The Layout Paragraphs module designed to make working with Paragraphs more user-friendly was introduced by Justin Toupin. It adds a new form interface to the administration where you work with paragraphs in a visual mode. In doing so, it is still compatible with them and you simply turn it on over existing page elements. It should also have localization support except for the builder on the frontend of the site, which is still experimental.
CKEditor 5
Wiktor Walc from CKSource, the company behind the development of CKEditor, presented the new features in the fifth version. Did you know that CKEditor 5 is written from scratch? That's why it's now such a big deal in the Drupal world. It brings a lot of challenges. In addition, it will be in Drupal 10 the only one directly in core. This talk showed a new solution for working with images and links, previewing block styles, the ability to use markdown but not yet in Drupal, as well as transformations (e.g. (c) to ©). Also interesting were premium properties, for which there is a special module in Drupal. For example, revisions are interesting.
Driesnote - back to hobby developers with Drupal
The keynote of DrupalCon Prague 2022 was of course the one given by Dries Buytaert. He reminisced about the beginnings and mentioned his parents' chair, on which the first versions of the system were created and which he later took to the USA.
He sees Drupal as a great tool to allow everyone to maintain control over their data. How many photo services do you remember have gone out of business? How many social media profiles have people and larger companies lost? With your own website, this won't happen to you (if you take care of it, I might add). Not to mention that social networks are tracking you and your readers, friends, relatives.
Dries sometimes gets frustrated that Drupal promotion is not what it could be. It's a powerful platform for web developers. Plus, Drupal meets the current trend of composability.
Most agencies working with Drupal are reporting growth. Drupal also supports large global organizations and companies. We've seen brands like AMD, Pfizer, Nasdaq, Harvard, the Beatles, NASA, Japan Airlines, Beijing 2022, Bruno Mars, and more. Thanks to all of them, Drupal is also having a big impact on society.
There are a lot of great things about Drupal that we sometimes fail to publicize externally as a community. Dries sometimes feels that we don't innovate fast enough and talked about the reasons why. One of them is the responsibility to have everything be of high quality at the expense of speed of innovation. Moving to GitLab should now help to develop faster.
This was followed by a demonstration using Project Browser, where the owner of the dog salon installed Drupal via Composer, added modules via Project Browser, and simply upgraded Drupal via the command line using Drupal Rector. I can't believe this story.
Anyway, from my point of view, the implementation of external module management and the possibility of automatic updates is what could bring more less experienced web developers back to Drupal. Let's not make Drupal for a select group. This in no way excludes the current development workflow. I've heard opinions both positive and embarrassed.
After the release of Drupal 10, which should come in December, development will again focus on innovation. Headless. User experience for content authoring. React, Svelte or Vue at the core? More Symfony. Smaller core and recipes. Some of these initiatives have already started.
You can watch the keynote from the recording:
DDEV and my first BoF
My current stack consists of Apache + PHP + MySQL installed locally, a virtual server and of course Git (Gitea and Drone in Docker on NAS). I wanted to get inspired and attended an informal session referred to at conferences as BoF (Birds of a Feather sessions). This one was about the open source tool DDEV for faster development of PHP projects on-premises. We got a small group of developers together, introduced ourselves, booted up our laptops and started installing. I wouldn't have gotten around to it on my own. The session was led by Randy Fay.
Gin as an improved administration theme
In the current version of Drupal 9, the Gin administrative theme is already marked as deprecated and the default is Claro. In addition, in Drupal 10 the Seven theme will disappear completely and will only be available as a contrib project. As much as Claro is more modern and cares more about accessibility, the problem I have with it is that it is incredibly wasteful of space.
And this is an opportunity for a Gin appearance theme. Sascha Eggenberger told us about it. Since the last show, they fixed 30 bugs, made minor changes to the design and fonts, improved the code and the dark mode. The current version is 81kB smaller in CSS and JS compared to alpha37. Dark mode is activated automatically according to computer settings. Secondary bar for frontend shows links from tabs (edit, delete, revise...). New icons.
Developers will be interested in the ability to use custom CSS and extend the library without having to create a child theme. Interesting improvements include a dashboard, collapsible sidebar, hotkey support and several display density modes. The developers are working on full support in Drupal 10 and removing the dependency on jQuery.
Digitalisation in Estonia
It is not only typical for DrupalCon that keynotes include topics that are only marginally or not at all related to the conference theme. Taavi Kotka talked about the next big things for digital companies and how digitalization is going in Estonia, which is very progressive in this respect. I could have done without this keynote, but I found a few interesting moments in it.
Creating themes for Drupal 10
Lauri Eskola and Mike Herchel took the floor to talk about theme creation. Drupal has a fairly high barrier to entry for frontend coders. They often expect that HTML, CSS, and JS are enough, but the knowledge needed to create a Drupal look and feel is many times more.
StarterKit should be a simplification in Drupal 10. It will make it easier to get started, and help you not to forget about Drupal-specific things like tabs, messages, thumbnails, and similar elements that theme developers often overlook.
Another relief will be to enable debug mode directly from the administration. I was interested in the features and filters for adding template name suggestions, adding and removing classes, setting attributes, displaying values (like Twig Field Value) or dumping ala Symfony (like Twig VarDumper can do).
I will definitely use Single File Components with the ability to link specific CSS and JS directly in the twig template without having to create a library for it.
At the end, both speakers showed us the changes in removing floats in CSS in favor of modern layouts, responsive Views Grid, off canvas dialog and more.
Twig Extensions
Michael Brauner talked about how as a Symfony developer he hasn't used any preprocess functions in Drupal for three years, but he's been working on Twig Extensions on every project. He finds it more like a Symfony way. He also mentioned the Twig Tweak, Bamboo Twig and Twig Query modules.
Drupal as serverless
Robert Slootjes talked about how he decided to try Drupal on Amazon Lambda's serverless solution. The result of the talk: yes, it works, but running Drupal on such a platform is not ideal. If you are interested in serverless PHP applications, check out bref.sh.
When to use custom fields
I didn't catch the whole talk, but it covered different situations and cases when to use modules like Paragraphs or Double Field for creating multi-fields and when to write your own custom module. Tiago Simões mentioned a specific solution when developing a site for CEFRL. Tip for the module: Configuration Inspector.
CKEditor 5 in Drupal
This talk, unlike similar talk in previous days, was not about the editor itself, but about its integration into Drupal. Lauri Eskola mentioned that 5 will be the only editor in Drupal 10 core. If you need 4 for some reason, perhaps because you can't rewrite your own modules to work with the new editor, CKEditor 4 will live as a contrib module.
From the administration point of view, you will be interested to know that the enabled HTML tags are no longer set manually in CKEditor 5, but are activated automatically according to the enabled buttons and plugins in the editor. If you need to write something manually, then use the source code editing in the editor.
From the developers' point of view, we now have a schema defining the allowed model structure of tags and their attributes for each plugin. Tip: CKEditor 5 Inspector.
Core Web Vitals
Some of the sponsors and exhibitors also made short appearances on the open stage. In this case there was a talk about Core Web Vitals and web speed. A Google representative was showing Lighthouse and towards the end there was a demonstration of lazy loading configurable directly in Drupal core.
Keynote on business growth
As far as I could see, Pavlina Louženská was the only Czech speaker at the conference. Her lecture was one of the ones not really related to Drupal. On the other hand, it was about company growth and most of the developers work in or with a company. And there were agency owners at the conference.
Pavlína poured out one number from one study after another, until I wondered how she could know it all from memory. I didn't notice the reading aids from a distance. And being a leaky head myself, I barely had time to look up from my notes, where I'd barely managed to make a note.
A couple of points that stood out to me: communicate face-to-face in the company at least twice a month. Not in the form of reports to the boss, but in the form of meetings. Give feedback: I like it, I don't like it. Beware of over-communication.
Hire HR with five employees. No hiring and firing, but learning and development. Did you know that senior staff can wait 50 days for confirmation, while Generation Z can wait two weeks? And that tech workers hate meetings? That women will apply for a job if they meet all the requirements, while men will apply even if they only meet 60%? Keep employees happy, get the diverse team involved.
Communicate the product, the fulfillment of the customer's dream and need, not that you're going to build them a website or app. Case in point: Slack presented itself in the beginning not as a chat program, but as 75% less email.
Specify the target audience. Women 20 to 80 are not the target, but an anonymous mass. Be specific. Prioritize people over B2B and B2C, not companies.
Ecommerce is now said to be growing so fast that within 3 months the growth is comparable to the last 10 years. Keep an eye on sustainability, voice control and remote working.
Company founders are twice as likely to burn out. Burn projects that don't serve you and only keep you in place. Google does something similar.
Last but not least, have a conversation with your team as a leader about how long they want to stay with the company and what they plan to do if they want to leave.
After each lecture there was room for questions and in the case of Pavlina I would like to point out one thing to think about. She talked about how she deals with stage fright (just being someone else on stage) and what her first lectures were like. She arrived at an event where she was mistaken for a coffee attendant and then introduced as a woman behind a crowd of men. Not in terms of what she was going to talk there or who she was going to speak for and from what position. So hopefully we're a few years down the road.
The Drupal community values women. Related to the previous paragraph, I'd like to mention the new Women in Drupal Award. Although I preferred the developer stuff, congratulations to Stella Power, Cristina Chumillas, and Surabhi Gokte on their awards.
Drupal 10 from the perspective of a Symfony developer
Nicolas Grekas is one of the prominent figures in Symfony and at DrupalCon Prague he talked about connecting with Drupal. The content management system doesn't use all the components of Symfony, but only part of them. He informed the audience about how Symfony is designed for easy upgrades, that it promises backward compatibility and continuous upgrades.
Symfony supports PHP 8.2 from version 4.4, and new language features from Symfony 5.4 onwards. Symfony 6 drops the deprecated stuff and 6.1 already uses modern PHP syntax.
A new Drupal release is always a month after a Symfony release. In May and November.
Drupal 10 will want PHP 8.1 because of Symfony, so Nicolas showed us the Symfony String component, which is in Drupal, but only the Console uses it. It shortens Unicode strings nicely, or can be used for a slugger. We also saw Symfony process management, routing, HttpFoundation, HttpKernel, DependencyInjection, and a demo of a specific module Nicolas was building for the cafe website.
What could Drupal use as inspiration for Symfony? Reduce the size of YAML files for services.
Gutenberg in Drupal
The editor on which WordPress is based, ported to the world of Drupal? Why not. Thor Andre Gretland and Marco Fernandes have shown not only that it can be done, but what the advantages of such a solution are. The biggest one, according to them, is the user experience. They prepared a demonstration of working with patterns, i.e. reusable page units.
This was followed by a demonstration of dynamic blocks, duotone filters and image formatting. Gutenberg for Drupal of course creates images according to styles and caching them in Drupal. To work with data in a decoupled solution, for example, you need a parsing function.
Currently, the JSON:API receives the entire HTML with annotations that Gutenberg uses to navigate, but in the future the developers plan to structure the JSON output according to editor blocks and their values. This was followed by a demonstration of block development for Gutenberg in Drupal using Laravel Mix. That is, in PHP, without React.
Playwright
Petar Bašić gave a demonstration of testing websites with Playwright, which they switched to from Behat. Nice presentation, but I have no further comments. I recommend to try the tool.
Partnerships between agencies
Chris Teitzel gave a talk on how he built his agency and worked with other professionals. Building an agency is not easy. 50% don't survive the first five years, 70% don't survive the first 10 years. Collaboration between agencies must not be in an us vs. them mode.
Know your agency. Fill the holes in your team, not everyone can do everything. Partnerships need to have open communication and clear roles. The goal must be the success of both companies, not one of them.
What do clients have to say about such cooperation? How will they feel about people writing to them from different email addresses/companies? Tell them everything up front. That you are using experts in different things and it will help for a better result. Either way though, try to maintain one primary point of contact.
The benefits of agency cooperation are clear, as far as challenges are concerned, Chris sees the biggest ones as setting up communication and aligning the different tools that companies use (he mentioned Trello vs Jira, I think).
See you in France
In addition to the sessions and keynotes, I met many colleagues from the field, made new friends, and spent time with old ones outside of the lectures. I tried a number of tools (besides DDEV, for example Platform.sh) and took the opportunity to talk about them directly at the booths. I climbed to second place in a simple knowledge quiz on the open stage and got a beanie from Pantheon.
In terms of participation, of the 1,200 people, the largest number of neighbours were from Germany, followed by the USA and the UK. There were only a few Czechs and Slovaks, I would say two dozen at most. I understand that the price for the conference is quite high for us. But:
- You can get free entry for volunteering and helping
- Divide the price by the number of days and it's not significantly more expensive than a one-day conference
- You've been using Drupal for years for free. By participating in DrupalCon, you are contributing to the Drupal Association and helping to keep Drupal's development going. It allows you to freelance or have a job.
- I don't understand employers who say something about how their employees don't need to know what's new in Drupal. As was said at the conference, did you know that 72% of developers are constantly considering changing employers?
I didn't catch much more of the conference. The next event in the region will probably be DrupalCamp Vienna 2023 in July. And the big DrupalCon Europe will be in Lille, France in October 2023.
Czech version of this article is here: Ohlédnutí za DrupalCon Prague 2022.