Skip to content

Phase 4: the site the archive deserves #219

Closed

Description

@DZPM

Phase 4: the site the archive deserves. The pull request is #220, merged and live at https://pybcn.org

Every box is ticked against the published site, not against the branch: the search answers, the filters resolve, the schedule of PyDay BCN 2025 fits a 390 pixel screen with no overflow, the footer carries Bluesky, the card of a shared link is the whole logo, and a search makes 40 requests, none of them to anybody else.

Phase 3 put 19 years of Python Barcelona on the site: 281 events, 607 talks, 370 people. Phase 4 makes them findable, rebuilds the home page around them, and fixes what the archive showed about the pages that were already here.

The search

  • /search/ searches the whole archive with no account, no third party, and no request that leaves this site: Pagefind runs over the built pages in CI and the index ships with them
  • The box is in the header of every page, and a missing address searches the words of its own path, so an old link to a talk lands on that talk
  • 1,258 pages indexed. Opening /search/ costs 176 KB of engine, WebAssembly, and filters, and a first search 36 KB more: one chunk of the word index and one small fragment for each result shown

The home page

  • The home page says what PyBCN is and where the next event is: the year it started, the four counts of the archive, the video, the two Meetup groups, the recent events, the photographs, the board and the committee, the four ways to take part, and the communities next door
  • The bar and the footer of the whole site follow it: four groups in title case instead of a menu that shouted in capitals, the legal pages together, and the licence of the code and of the content
  • The hero band is gone from every page. A third of the screen with a photograph that said nothing about the page it stood over: thirteen events shared seven of them
  • Every other page of the archive takes the vocabulary of the home page: one type scale, one card, one rhythm, one muted grey

Finding a person, a talk, a day

  • /talks/ filters by type: 398 talks, 172 workshops, 27 lightning talks, 7 keynotes, and 3 panels, each on its own page, with no JavaScript
  • /people/ filters by role: the board, the committee, 23 organizers, 356 speakers, 10 mentors, 8 collaborators, and 1 volunteer
  • /people/role/assistants/ says that the association never recorded who came, which is the honest answer to the question that tab asks
  • /organizers/ loses the modal that repeated the page of each person, and keeps its grid of faces

The photographs

  • 530 photographs on 84 event pages, where the archive had 235 on 11. They were sitting in the X export with nobody reading them
  • What places a photograph is the text of its thread first, and the day second: a post of the association, with a photograph, published on the day of an event, is a photograph of that event, even when its text only says "About to start today's meetup!"
  • 257 of them name the talk they show, so the photograph of a talk reaches the page of that talk
  • What stays out: a logo card that thanks one sponsor, a call for proposals, a change of date, a milestone, a meme, and anything that falls on the day of an event and says nothing about it
  • Stored as WebP: 33.6 MiB of JPEG from the export become 19.7 MiB, 41.4 per cent less

What the archive showed about the rest of the site

  • /sponsors/ is read from the sponsor records and not from a list by hand: 81 and not 46, with 25 that were on an edition page and nowhere else
  • The sponsors of PyDay BCN 2018 and 2019 come back: they were the HTML of the frozen site pasted into the page, each logo with its own size written in a style attribute
  • Every logo is stored at the size the page serves: 28 of them went from 1,167 KiB to 249 KiB
  • 42 of the 72 PyLadies BCN days are named after their day and not after their one workshop, which the page said twice
  • The minutes of the eight general assemblies have a section of their own, with the photograph of five of them
  • An edition says how many people came when a source says it in words: PyDay BCN 2025, 140

Accessibility, privacy, and the things that were wrong

The weight of the repository

  • The images that were in the wrong format are WebP: 8,460,730 bytes of PNG become 2,150,520, and 1,855,481 of those are the frozen snapshots, which keep their files as they were served
  • Three images no page asks for are gone, and two partials with no caller

Closes #171, #172, #212.

Activity

  1. self-assigned this
    on Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions