User:TiagoLubiana/Wikimedia Hackathon 2025/en
This is an automatic translation of the original version of the report via ChatGPT 4o.
The following report was written continuously throughout the trip. I decided to write it originally in Portuguese, as it allows me greater expressiveness. I followed a sort of semi-stream-of-consciousness approach, without links or images in the body, in favor of a clean, offline writing experience. And also to have a lightweight report—easy to carry and translate.
Over time, the Portuguese version may still be improved—after all, that’s the great advantage of the Wiki format :)
Travel Notes and Report – Wikimedia Hackathon 2025, Istanbul
[edit]A hackathon always starts before the hackathon. I studied a bit about the city—in this case, Istanbul, the famous Constantinople from history books. There are daily flights from São Paulo, with the journey lasting around 13 hours. The event program is open and was collaboratively created on a MediaWiki page called "Wikimedia Hackathon 2025". The event's wiki page also includes participant contacts, which allows for early interactions and project planning.
Preparing for the hackathon includes deciding what to do there. That means, for example, planning sessions in addition to one or more projects to work on. It also includes picking a small souvenir to share. I usually bring a pack of paçoquinhas, which is always a hit with sweet-toothed folks.
Regarding the sessions, I decided to use the opportunity to improve the iNat2Wiki tool, which I’ve maintained for a while. To start rewriting the project with a bit more maturity and drawing from the experience of Wikimedians there.
Also, one of the ideas that motivated my scholarship application in the first place was to connect the Latin American community, aiming to foster a local wiki-hacker culture. Maybe even promote a WikiHackathon in Latin America? Local connections, shorter flights, and a focus on Latin America's shared needs sound like a great idea.
Lastly, as part of the volunteer photography team, I also packed a camera I own. Although not high-end, it’s a decent APS-C DSLR, and the 75–300mm lens allows for some uncommon telephoto angles, complementing smartphones and the powerful cameras of European WikiPhotographers.
Day -1
[edit]Érika Guetti, also from Wikimedia Brazil, and I were on the same flight. We left Guarulhos at 4:10 AM and arrived in Istanbul around 11 PM. The flight came from Argentina and also brought Diego de la Hera and David.
After passport control, we found the transfer arranged by the event organization and headed to the Polat Renaissance Hotel. The hotel, in Yeşilyurt, seemed quite fancy. It’s a different standard than what we’re used to in Brazil—European developer standard, maybe.
Rooms were assigned individually, spacious like small homes. My room, 2507, was on floor -2, with a garage view and at sea level, a bit scary given recent seismic activity and tsunami risk. Waves aside and despite the late hour (01:00), I managed to eat via room service, covered by the scholarship for that night. I had a salad and lentil soup and went to sleep.
Day 0
[edit]I woke up and went to breakfast. I had breakfast with Diego de la Hera and AKlapper, kicking off the hackathon interactions. The hotel breakfast matched the room: over 15 types of cheese and a large variety of options, from grapefruits to jalapeño poppers. I also ate the typical sweet lokum—very tasty. During the day's outings, I bought a mixed box with six flavors to give as souvenirs.
I snuck out and wandered the city. I took the train from Yeşilyurt station to Sirkeci, a more central area of the city. Istanbul has three coastlines: two on the European side, separated by the Golden Horn, and one on the Asian side, separated by the Bosphorus Strait.
I got distracted and when I left the train, I was in Asia, having crossed a massive transcontinental tunnel by accident. And to think Vasco da Gama had to sail around Africa for this. I turned back towards Sirkeci but missed the station again. Only then did I realize it was closed. The Sirkeci station, near the Galata Bridge, was likely blocked due to protests scheduled to occur at Taksim Square.
It was raining, but I got off at an earlier station, paid 150 Turkish liras for an umbrella, and walked around. I passed by many, many shops. Istanbul bustles with commerce, bazaars of all kinds—some open-air, some covered. There are also many mosques, and I had the chance to visit the exteriors of Sultanahmet and Hagia Sophia. I admit, I was especially keen on seeing the latter due to its prominence in Civilization VI. It truly is beautiful—worth it.
I walked on to Gulhane Park, with its beautiful tulip-lined paths—a more bucolic side of Istanbul. Actually, the whole city has low-rise buildings and is very walkable, clearly designed for people. It reminded me a bit of Barcelona, also due to the ever-present seagulls and Mediterranean feel. Near the park, the Galata Bridge was full of fishermen with long rods, competing with birds for small sardines. It was also full of police officers, with car traffic blocked as part of the larger security setup.
I didn’t venture across the Horn and returned. The city alternates between flat areas and hills, with cobblestone slopes challenging your footwear. I only slipped once, so I consider that a win. The umbrella wasn’t so lucky—it broke.
On the way, I passed through the Grand Bazaar of Istanbul, crowded with people and filled with smells. The bazaar is truly huge, a city of streets, manholes, and slopes under one roof. And under that roof, the merchants smoke incessantly. There are indoor public smoking areas in every establishment around the city, a bit like some other European countries.
To end the tour, I took the train back to the hotel. I stopped by Migros supermarket to buy some Turkish coffee and ran into Érika and another Brazilian, Marina, who works on the iOS mobile development team at Wikipedia. Gradually, the concentration of Wikimedians grew to its peak in the hotel lobby, with many familiar faces. I registered for the event and now have a fancy badge that says Tiago Lubiana – Biodiversity Heritage Library. I’ll pause writing to wear it—it’s time for the dinner that officially kicks off the hackathon.
Day 1
[edit]The day started with breakfast, which I had with Mohammed Sadat (WMDE) and Artur Côrrea, from Brazil. We talked about QuickStatements and future plans for Wikidata. I interact a lot with Mohammed online, but we had never met before. Full, we headed to the event’s opening ceremony.
The organization introduced the event, mentioning this was the largest Wikimedia hackathon ever, with over 200 participants. Turkey is very visa-friendly and serves as an international flight hub, which allowed for much more diverse participation than usual. Many African, Indian, and Latin American participants—great!
We heard from the Trust & Safety team and were reminded about the importance of maintaining a friendly space. We also got tips on what to do in case of a tsunami. Then came the main part: the project presentations. A line formed, and around 100 people, 30 seconds each, presented their ideas, skills, and requests. I presented our Sunday session about the tech and Wikimedia landscape in Latin America and immediately started connecting people.
The project ideas were varied—Python tools, Wikibases, bots, structured data on Commons, and other things I find really interesting. It was also a chance to put faces to people I only knew digitally. I was particularly happy to meet Gnoee and Addshore, whom I’ve followed for a long time since early 2020 when I started organizing the COVID-19 WikiProject on Wikidata.
This time, I attended fewer sessions than at the Hackathon in Athens. I spent more time talking, forming bonds, and developing software. In the first hacking session, I worked on reorganizing inat2wiki, thinking through what I need before rewriting a tool. Christine from the finance team supported me with the initial ideas. I also brainstormed with Antonin/Pintoch and learned about the Wikimedia Foundation’s GitLab instance.
Progress was solid—I created documentation, wrote tests, decoupled the Flask app from the PyPI module, and did other technical stuff. I attended only one morning session, organized by Mike Peel, about categorizing hackathon photos on Commons. I’m taking fewer pictures this year since I already know more people and am more immersed in technical projects—and really enjoying it.
Over dinner, I had a long chat with André Alchimista, from Wikimedia Portugal, who told me more about their chapter’s activities over the years. I also talked with Marina, from the iOS apps team, about Commons uploads and showed her the new iNaturalist app UI. Tomorrow I’m scheduled to do user testing for her on the Wikipedia iPhone app.
In the next hacking session, I got a chance to speak and listen to Italian for the first time. I was surprised that I understood everything. Speaking—not so *semplice*. But I understood everything Elena (based in Austria) and Valerio (working on Phorge/Phabricator) explained. Still haven’t tried German. Maybe soon?
We set up a working table where Portuguese was the main language. Artur, who’s developing QuickStatements version 3, showed me his hacker workflow using post-modern tools like the Helix editor and the keyboard-driven browser Qute. Waldir, a longtime Cape Verdean Wikimedian, introduced me to the book *Hackers: Heroes of the Computer Revolution*, which went on my reading list. He also gave me *rebuçados*, traditional sweets from his homeland made from cane sugar.
I also chatted with Lukas Wermeister, who is half-Brazilian and works on Wikidata. I spoke with him about WikiCon Brasil and a potential return visit to Brazil. He gave me access to the Mastodon channel wikis.world—now let’s see if I use it.
Close to midnight, I had a great conversation with folks from Kerala—Gnoee, Manoj, and another colleague whose name I can't really recall now. The Kerala group is amazing. We talked a lot about India, their state, nature, OpenStreetMap, Wiki Loves Birds, the Biodiversity Heritage Library, and more. We planned to work on BirdMaps tomorrow—but now, I’m exhausted and off to sleep.
Day 2
[edit]I had breakfast with Diego and the Spanish-speaking team from Abstract Wikipedia / WikiFunctions—both using Fairphones. I liked seeing the number of Framework laptops and Fairphones, designed with repairability in mind. True open-source hackers. I’m looking forward to the day they’re available for purchase in Brazil.
From breakfast, I went straight to a session on how to add book metadata to Wikidata with Waldir and Artur. Taking advantage of the bibliographic theme, I chatted with James Hare and Wolfgang Fahl about splitting the Wikidata SPARQL endpoint. Continuing with that topic, we discussed book modeling with Jonathan Tweed, who previously worked with the Wellcome Collection archives.
After that bibliographic moment, I had lunch with Ismael from Spain and Johana Botero from Wikimedia Colombia. We discussed Living Data 2025, the open data workshops they’re planning, and the possibility of collaboration.
I then continued conversations about how to document the Graph Split with Waldir, who gave valuable advice and an action plan. I also spoke with Mohammed, who gave me several contacts on the Wikimedia Deutschland team to discuss the topic further.
Spending the day focused on conversations, I went to the user testing session for the Wikipedia app for iPhone/iOS. One of the three team members is Marina, a Brazilian living in São Paulo. Lots of great features, but the Portuguese translation—done collaboratively via translatewiki—leaves something to be desired. Doing a major translation pass would be nice.
Together with Artur, we started to take action on the idea of fostering a wikihacker culture in Latin America. We submitted a 1.5-hour session to host a mini-hackathon at WikiCon Brasil in Salvador. Sounds like fun. I also got another hacker tip: the Bitwarden password manager—but I haven’t tried it yet.
Since the day was already geared toward conversations, we rounded it out with a short walk on the beach next to the hotel. Alberto Leoncio joined us and talked more about the development of Capacity Exchange, a platform for skill-sharing among Wikimedians. It looks promising.
Back at the hotel, I met Olga at dinner. She’s on the UX design team at the Foundation. Russian, she surprisingly lives in São Francisco Xavier—a peaceful, nature-filled spot near São Paulo. In fact, I was surprised by the number of Brazilians (or Brazilianized folks) in the Wikimedia movement whom I hadn’t met before—wonderful people doing very interesting things. Besides Olga, Levi (a developer at the Foundation) and Luis (from the Board of Trustees) are two such people whom I met only across the Atlantic—and across the Mediterranean, too.
Later, I went to my room to talk to my family. Oh, how I miss them! One year old is such a lovely age. My daughter said lots of “babás” during the video call—her version of “daddy.”
Why do I mention this? Because the Hackathon is about people, you know? And we have these many lives. How could I want to talk about how the Hackathon went without mentioning how much I missed my little one? Only the Hackathon could make me fly this far away.
Anyway, when the call ended, it was already around 11:30 PM, and I still had a lot I wanted to do. I went back to the hacking room and found lots of people still there. The Lusophone table was full, everyone immersed in their projects, finalizing things to present the next day.
I tried making a change to QuickStatements V3, taking advantage of developer Artur being there. I ran QSV3 locally but ran into issues. I gave up on the change and spent my time doing something unquestionably positive: documenting. I think it turned out well—or at least well enough. Around 3 AM I got QSV3 running locally with the new documentation.
Feeling like I had already made the planet a bit better, I went back to working on inat2wiki, my initial project. With help from ChatGPT, I added Flask-Babel to iNat2Wiki to support translations and made some aesthetic tweaks. I have a mixed relationship with coding LLMs.
Yes, they speed things up a lot, but something about the experience is unsettling. It’s chaotic learning—move fast, break things. It works… until it doesn’t.
My impression is that they work great up to a point, beyond which it becomes impossible to move forward without deeper study and first principles. Prototypes take off. Products? Not so much. Well, with some struggle, I managed to implement the system—and maybe learned a thing or two.
When the last two people in the room decided to leave, I caught a ride and went to sleep. The day had been alive for five hours, and the Wikimedia Hackathon y Latinoamérica session would begin in just a couple more. Ah, those precious few hours of sleep.
Day 3
[edit]I woke up extremely excited for the morning activities. I had coffee, another coffee, ate something, and went to the "Istanbul" room.
We made a circle with the chairs and, as Érika says, we started "developer therapy." Each person introduced themselves and shared a bit about their life. Little by little, we got to know each other.
The conversation flowed, with Nat and I mediating the pace. Everyone seemed very excited about the idea of strengthening the technical community in Latin America, including Karen, who is Mexican and works for the Wikimedia Foundation. There’s a momentum now, a critical mass that feels very special. A collaborative and coordinated atmosphere that can only lead to good things.
We left with three action items: First, a Telegram group to discuss wiki technologies in Latin America. Second, skill-sharing via the Capacity Exchange—a tool with an English name, but homegrown development. And third, the certainty of a Latin American Hackathon—no date yet, but we already have the seed of an Organizing Committee. We later spoke with Amanda from the Foundation, encouraging the group to move forward. We will!
Then, I split my attention between two sessions: one by Jorge about the Paulina tool, and another by Halley on APIs in the movement. The API one was absolutely packed. It’s a hot topic, and the prospect of better usability is a breath of fresh air for the developer community.
We then returned to therapy, this time in a “fish bowl” format, introduced by douginamug and Pintoch. Four chairs in the center, open for conversation. Twelve chairs around, listening in silence. Self-moderated, people enter and leave the inner circle, and ideas flow freely.
The model works great in theory, of course. In practice, it can go wrong—or not. This time, it didn’t go wrong. It went right. Very right.
In one of the best technical discussions I’ve ever taken part in, a mix of newcomers and experts brought up ideas, experiences, and proposals to improve the Wikimedia tool ecosystem. Many of the apps that support the Wiki are fragile, maintained by solo individuals. It’s the so-called "bus factor"—if the maintainer gets hit by a bus, the project dies. Documentation was a recurring theme, as were strategies for granting advanced contribution rights (e.g., to close merge requests, in technical terms). We talked about "jazz band" models and automatic permission progression like in StackOverflow. We discussed extended trust: I trust who I trust trusts. Lots of ideas that help build a culture.
On a practical level, I left convinced that the best way to start contributing to a project is by improving the documentation. And also that first contributions place a burden on maintainers, and real technical value comes from a strong community.
After this wave of community spirit, Manoj invited me for a chat, and I joined him, Ranjithsiji, and Jinoy. This group, Open Data Kerala, is doing amazing things in southern India. At the intersection of OpenStreetMap, Wikidata, and biodiversity, the group is a perfect match for my areas of interest. They organize a beautiful campaign, Wiki Loves Birds India, and are about to organize Wiki Loves Earth India. We talked about the tools I make and strategies for these contests. And of course, about when I’ll visit Kerala! It seems like a magnificent state and has jumped to the top of my list of places to visit.
We had lunch and then went to the closing ceremony.
Meanwhile, David Lynch posted a beautiful jellyfish photo in the Hackathon group. I politely asked him, and he uploaded it to iNaturalist—his first contribution to the platform. Thank you! iNaturalist’s default license, though, is CC-BY-NC, which is incompatible with Wikimedia Commons. It presents a great opportunity to test sociotechnical workflows and see how iNat2Wiki handles these cases.
Starting at two and ending at four, the closing ceremony was a gem. Each group had up to two minutes to present what they had done during the event. I’ll include a list of links at the end—there were so many projects!
They included tools to track technical contributions, to improve editing interfaces and workflows, to analyze article references, to organize campaigns, and even WikiGames.
(I’m writing these words on the return flight; I’m sleepy and uninspired. But Tiago, this is a diary-report, not a novel. It’s okay.)
Among all this, Nat, Carla Toro, and I presented the session about the Latin American Hackathon. Loud applause and broad approval. I left the podium with a feeling of mission accomplished and the certainty that this Organizing Committee seed will grow.
At the same time as the ceremony, I managed to complete one of my goals: updating the BirdMaps tool on Toolforge. I was quite tired, so I got a bit tangled in the flow, but in the end, it worked. It’s there, ready to connect bird observation spots with Wikidata.
To wrap up the event, all 200+ participants were invited to board a ferry. We sailed festively down the Bosphorus. Istanbul is a beautiful city, with palaces, mosques, lighthouses, and historic mansions sharing space with mirrored, curvy modern buildings. There are also many seagulls, sharing the sea with massive cargo ships and luxurious yachts. With my telephoto lens, I spotted a Pikachu costume floating in the Sea of Marmara—maybe the same one that went viral during last week’s Turkish protests. Lots of laughs.
A beautiful ending to a great event. We said our goodbyes calmly and planned future actions. I had long conversations with Carla and Nat, and plans for a Latin American Hackathon are starting to take shape. There’s much to be done and lots of organizing ahead, but the outlook is excellent.
I leave Istanbul confident in the strength of the Wikimedia Movement and the vibrant technical capacity of the community. It’s beautiful to see so many amazing people gathered in support of free software for free knowledge—collaborating, creating, growing. It’s inspiring. I’m deeply lucky and grateful to be a part of it.
Favorite Hackathon Links:
[edit]Well, there were many more interesting things. This is what my three neurons managed to remember:
Highlights
[edit]- The Hackathon page itself: https://www.mediawiki.org/wiki/Wikimedia_Hackathon_2025
- The final session: https://etherpad.wikimedia.org/p/Wikimedia_Hackathon_2025_Closing_Showcase
- Our presentation in the final session: https://youtu.be/rz5r8dCeC2M?t=1982
- The Phabricator ticket for iNat2Wiki-dev: https://phabricator.wikimedia.org/T392822
- The Phabricator ticket for the Latin American session: https://phabricator.wikimedia.org/T392770
- The trilingual version of iNat2Wiki: https://inat2wiki-dev.toolforge.org
- The BirdMaps tool, to connect eBird and Wikidata: https://birdmaps.toolforge.org
Tools I liked seeing
[edit]- To assess technical contributions: https://techcontribs.toolforge.org/
- To add translation tags on Meta: https://translatetagger.toolforge.org/
- For events and such (can’t recall exactly—on the plane): https://campwiz.wikilovesfolklore.org/
- To simplify short link creation: https://en.wikipedia.beta.wmflabs.org/wiki/Fox
- To add books to Commons, by Waldir: https://waldyrious.net/bookform/
- Waldir’s initial motivation: https://inventaire.io/welcome
- To analyze references in a Wikimedia article, tagging them with emojis: https://gist.github.com/KevinPayravi/6038abb6334d92fc42e35b2e115c6343
- To create multiple galleries—useful for photo campaigns: https://gitlab.wikimedia.org/toolforge-repos/multigallery https://ranjithsiji.github.io/multigallery/
- To plan trips in a fun way: https://velorail.bitplan.com/
- To browse Commons in a modern way—could be great for Biodiversity Heritage Library content: https://hnordeen.github.io/Commons-Swipe/
Other
[edit]- The jellyfish photo David uploaded to iNaturalist: https://www.inaturalist.org/observations/278326464