FOSDEM
This weekend, FOSDEM is taking place in Brussels. Unlike most conferences, it stands out for the sheer breadth of its topics: from geospatial technologies to a panel discussion on what browsers might look like in 2026, from concurrency and testing in Go to talks on why you might not need an ORM at all — and much more.
For me, one of the main challenges is coming up with a useful way to select the most interesting talks without missing too much.
Since FOSDEM provides an XML feed (https://fosdem.org/2026/schedule/xml) with all the events and speaker bios, I thought it would be interesting to let Claude build a nice site on top of that.
After about 50 prompts — and mostly steering things in the direction of UX — I think the result isn’t bad at all. Check it out at https://fosdem.hello-data.nl.
It even implemented an important feature to put overlapping events in the ‘My Events’ next to each other so you visually know that you cant go to both events since they overlap.
-–
But when i started using the site, i noticed that it did not load very fast. Adding/ removing events just took a bit to long (a short moment you might think ‘does this button even work’). And when i checked my network tab i found out that the HTML document itself has a size of 4mb and is about 15000 lines long. According to google page speed ‘the First Contentful Paint’ is 5.4 seconds with an overall performance score of 28!
This is a moment to realize that AI is perfectly capable of generating code — in other words, it can mimic what a website should look like at the code level. But it does not think about performance as long as you don’t tell it to think about that.
And then you have 2 options:
- dive into the code and understand what it’s really doing, line by line
- let AI fix it for you
Since i am using AI for creating this site, i asked Claude ‘the DOM is 15000 lines long and that makes the html document 4mb in size what can we do about it?’ And then it came up with a bunch of solutions;
- virtual scrolling/ lazy rendering
- pagination
- collapse event details by default
- client-side rendering with JSON data
- filter first, render second
I choose for the first solution; which did seriously improve the performance. the overall performance score went up from 28 to 66, but the ‘First Contentful Paint’ is still more then 5 seconds. But…
- it generated quite some code for this (do i need to understand this or just have faith in what AI is doing?)
- the new code does contain actually the same HTML and CSS classes as event-card.edge (this is definitely not DRY)
- my nice ‘Event Overlapping’ feature is not working anymore
Lets ignore the first 2 remarks, and lets make sure the site at least works as requested, so i asked Claude:
the overlapping events in my events does not work anymore after the lazy rendering is introduced
Claude fixes that; but now when removing an event from My Events’', the overlapping events disappear as well. When i refresh the page the overlapping events do appear again so there not actually remove from the local storage. Lets ask Claude:
When i remove an event from the My Events page the overlapping events are removed from the DOM (not from local storage)
Now that’s also fixed by Claude. So we have a working site with all the features we wanted so far but:
- i am afraid with every new feature implementation something else will break (like i experienced earlier)
- since i am not an experienced front end developer i do not explicit brief every requirement (for example performance) so what would be the overall quality of my site?
- big chunks of code i have almost no understanding of; the overlap logic and the virtual-list logic for example. is this a problem? i don’t know as long as AI will just take care of everything
- until the point AI does not take care of everything and we need to steer; and for steering we need knowledge and understanding anyway
To see the progress step by step check https://github.com/boudewijn00/fosdem-schedule