Wikimedia Hackathon Northwestern Europe 2026 recap

, .

Last weekend, I participated in the Wikimedia Hackathon Northwestern Europe 2026, which took place in Arnhem from 13 to 14 March 2026, ca. seven weeks before the “big” Wikimedia Hackathon 2026 in Milan. Just like for previous Wikimedia Hackathon events, I want to write a bit about the experience.

As is traditional for the Dutch (mini) hackathons, there was an informal meetup the evening before which involved a variety of beer options. I’m usually not great in this type of setting, but I had a somewhat better experience this time than at the mini hackathons, in that there were more non-Dutch speakers present; the evening further improved once I stepped outside and talked to folks there instead of inside the place. I had the opportunity to chat with several people, including meeting SomeRandomDeveloper for the first time, which was great. (On my way back to the hotel there was an unfortunate incident which we need not dwell on further.)

The hackathon properly started the next morning, when Multichill asked me on Telegram if I wanted to play the piano; I rushed to the venue, was ushered into the auditorium, and started playing some Scott Joplin to lure the rest of the crowd into the room so the opening ceremony could start. (To my ears, the piano was fine and well tuned, though some other folks seemed to think it was a bit out of tune ^^) People seemed to enjoy this, which was nice; also, to jump a bit ahead in the chronology, this resulted in Ege reaching out to me and asking if we wanted to do a song together! He suggested The House of the Rising Sun, and I managed to get a key to the auditorium so we could practice on the second day; once I listened to the reference recording to get the tempo right (I had it in my head twice as fast as it actually is, oops), the rehearsal went well, so we performed the song to open the showcase / closing ceremony, which was great. I would love to have more hackathon venues with pianos and/or other musical instruments available!

(Side note: one thing about this event that makes me a bit uncomfortable is how much we all relied on Telegram. If an attendee wasn’t on Telegram, they’ll have missed not only a lot of chatter, but also some announcements during the day – or rather, they’d have found out about things like lunch, the group photo, or the showcase Etherpad from their table neigbors instead. The Telegram channel that’s used for the main hackathon is at least bridged to #wikimedia-hackathon on Libera Chat (IRC), but this hackathon used a separate channel without, as far as I’m aware, any bridge. I think it probably would’ve been better to stick to the main hackathon channel and just post a warning in there a few days in advance that the channel would become quite chatty for a while and that everyone not in Arnhem should consider muting it until this event was over.)

Jumping back to the opening, I briefly introduced myself, mentioning my nigh-perennial hackathon project (T231755, making language names translatable on translatewiki.net) and some other areas where I might be able to help out. The introduction procedure was different than it usually is at the main hackathon – instead of having people line up at the podium to introduce themselves, a microphone was handed around the audience and everyone got a turn. I thought this was actually a good way to do it (though how well it would scale to the main hackathon is another question): it removes the barrier of having to consider whether you should introduce yourself or not, instead assuming that everyone deserves an introduction. (The Etherpad trying to take notes of everyone’s introductions got a bit chaotic during this, but mostly it worked well.)

After the showcase, I settled into what is by now my usual hackathon mode: find a table with some people I know and start working on my “background” project (in this case, making language names translatable) while keeping an eye on Telegram and waiting for collaboration opportunities either there or from people coming up to me. I won’t recount everything in detail here, but I was able to help several people with various issues, and contribute input to some ongoing discussions.

On my “background” project, I made significant progress. I had thankfully left fairly detailed notes in a comment two years ago (at the 2024 Tallinn hackathon; in 2025 in Istanbul I had mostly worked on WDactle instead). The first part of that comment (fixing the missing language names) got fixed at the mini hackathon half a year ago (though I made two more fixes at this hackathon), so now I tackled the other part, in a series of changes that I uploaded to Gerrit: implement a temporary script to move language names to i18n files, run it, load language names from there, update rebuild.php for these changes, remove now-unused LocalNames files, and remove the temporary script again. Not all of the changes in this chain are fully ready yet, but the first few already got merged anyway; we’ll see how fast the rest of this work matures (I might work some more on it during the main hackathon in Milan). At the showcase, I briefly summarized the goal of this work and showed the patches I uploaded.

My other larger project at this hackathon came from Ideophagous, who wanted to create some Moroccan Arabic lexemes (T420020). I showed him the Wikidata Lexeme Forms tool, and he agreed to create some Moroccan Arabic templates for it, which can be used to create lexemes either manually or in bulk. By the end of the second day, the templates were finished enough that I could deploy them to the tool, and since then, they’ve been used to create several lexemes! Ideophagous presented this project at the showcase.

(Another side note, while we’re on the subject of the showcase – I mentioned this on Mastodon but wanted to elaborate on it a bit more. Quite a few showcase presentations mentioned they used “AI” tools, i.e. LLMs (nothing text-to-image or text-to-video as far as I remember; there was one project using what I’d call “classical” machine vision, which I’m not including in this paragraph), often in the form of “vibe coding”. And it made my stomach turn every time. These tools are built on staggering amounts of training data, stolen from all over the internet (and offline sources), including Wikimedia projects, with no attribution. In the process of hoovering up this training data, they create ungodly amounts of network traffic, making the lives of Wikimedia’s SREs miserable for the past several years, and ultimately have made it necessary to impose new rate limits which even affected us during the hackathon itself. I don’t know if the Wikimedians using these tools don’t understand this, or if they don’t care, but either way I think it fucking sucks. Rant over, at least for now; though I suspect my post about the Milan hackathon might end up including something rather similar.)

One other project I worked on was m3api, my library for using the MediaWiki Action API from JavaScript; I’ve been working on replacing its network interface, so that the m3api-rest extension package can support more request methods, request body types, and response body types. I mostly worked on this “around” the hackathon, rather than “during” (e.g. during train rides, or late in the evening when I had nothing else to do), because this is a volunteer project and I was supposed to be at the hackathon on staff time :) but I still managed to make some good progress on m3api-rest’s support for the new network interface: on the fetch branch, it now has some support for sending additional request body types, and plans for how to implement the rest. I didn’t showcase this because it’s just ongoing work on the side, but I still wanted to mention it here.

And that’s it! Overall, this was a great hackathon for me – I could easily reach it by train, and I met lots of lovely people, exchanged some sweets, got some useful work done, and also had some non-technical “projects” (music; at some previous hackathons, juggling ^^). I’m looking forward to the next one in Milan!