{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreia2d3soenze7paaxblsd2cbzripbbjocegna7tpductgsxrtqc444",
    "uri": "at://did:plc:jo3wjj2gx46alocis4wubmwr/app.bsky.feed.post/3mm7js46kyxf2"
  },
  "path": "/posts/2026/05/19/wikimedia-hackathon-2026/",
  "publishedAt": "2026-05-19T00:00:00.000Z",
  "site": "https://lucaswerkmeister.de",
  "tags": [
    "Wikimedia\nHackathon 2026",
    "in",
    "previous",
    "years",
    "T423292",
    "Cool new things in JavaScript + CSS",
    "2023 hackathon",
    "Cool new things in PHP",
    "Cool new things in MediaWiki code",
    "browser\nsupport matrix",
    "Can I use…",
    "MDN",
    "T231755",
    "2024",
    "T410883",
    "T425136",
    "Brooke",
    "Effie",
    "mw-experimental",
    "Reedy",
    "demonstrated",
    "Fifty Shades of Caching\nand How LLMs Paint It Black",
    "How MediaWiki code gets\ndeployed and things we are changing",
    "Northwestern Europe hackathon",
    "Being a developer in\nthe age of AI taking over our profession: how do we deal with it as\na community?",
    "Hay’s summary",
    "read\nabout my entire hackathon journey"
  ],
  "textContent": "Two weeks ago, I took part in the Wikimedia\nHackathon 2026, which took place on 1–3 May (Friday–Sunday) in Milan, Italy. Like \nin \nprevious \nyears, I wanted to write a bit about the experience.\n\nI came into this hackathon with one planned presentation / session (T423292): \nCool new things in JavaScript + CSS. This is the continuation of two sessions I did at the \n2023 hackathon, \nCool new things in PHP and \nCool new things in MediaWiki code. The goal of these sessions is twofold: to make people aware of these features at all, and also to let them know that these features are now available and can be used. I’ve spent far too much time trying to figure out if I’m allowed to use a feature based on the browser\nsupport matrix and resources like Can I use… or MDN (this is somewhat more tedious in JavaScript+CSS than in PHP, where we at least only have one engine with a single minimum version); gathering all the available features in one place (with a separate section at the end for features that we can’t use yet but can look forward to) should hopefully make this no longer necessary.\n\nI also came to Milan with three ideas for projects: making language names in the CLDR extension translatable (T231755), a project I’ve been working on at hackathons since \n2024; adding support for QUERY requests to the Action API (T410883); and, motivated by the “Cool new things in JS” presentation, an `mw.html.format`...`` tag function to write HTML as template literals with automatic escaping (T425136). This year, I didn’t really pick up any other projects while at the event, but just ping-ponged between these projects when I had free time. The CLDR project in particular mainly involved talking to other people to find out how this might be best implemented and how we could test the performance; many thanks for enduring my repeated questions go to Brooke (localisation cache), Effie (mw-experimental – unfortunately the conclusion was that this particular change can’t be tested there), and Reedy (deployment / evaluation plan). The other two projects made some more tangible progress, which I demonstrated at the showcase (ca. 21:00–22:15).\n\nAside from my particular projects, this was pretty much a standard hackathon for me. I met and talked to lots of nice people; I attended some interesting sessions (Fifty Shades of Caching\nand How LLMs Paint It Black was basically a shared wailing session about the horror that is the present-day web, How MediaWiki code gets\ndeployed and things we are changing was exciting, “Overview of Parsoid architecture and high-level overview of the Parsoid codebase” [no task / link] was super interesting and informative – so many debugging facilities in Parsoid!); and I generally had a nice time. I think the social aspect during the normal program time fell a bit short (there was no Wikimedia Cuteness Association meetup nor anything like the juggling / rubik’s cube sessions of past years), but there were enough social opportunities in the evenings to make up for it.\n\n(Side note: compared to the \nNorthwestern Europe hackathon earlier this year, my impression was that this hackathon had less “vibe coding” / “AI” going on, both during the event and in what people presented at the showcase. But perhaps I just did a better job at evading it, I don’t know. There was a session about Being a developer in\nthe age of AI taking over our profession: how do we deal with it as\na community?, which was in such high demand that a second copy of it was scheduled for later in the day; I attended it but don’t think I managed to contribute (or take away) much, to be honest. If you want to know more about that session, read \nHay’s summary.)\n\nAs for travel, I was fortunate enough to be able to travel to and from this hackathon by train once more; on Mastodon I kept it all in one thread this year (rather than several per-day threads), so you can read\nabout my entire hackathon journey there. And I think that’s all for now – see you either in a few months in Paris, or next year in Albania 🙂",
  "title": "Wikimedia Hackathon 2026 recap"
}