We are thrilled to announce the selection of 6 contributors to work with us for this year’s Google Summer of Code program!
MetaBrainz received many great applications this year. Selecting the final contributors was tough and involved deliberating various factors – what these contributors did right is getting in early, engaging with our community, presenting specific and detailed proposals, and proving excellent communication skills and the ability to integrate our feedback back into their proposals.
Thank you to all contributors who submitted a proposal with us!
The whole list of selected proposals can be found on the GSOC website but here is a TL;DR breakdown:
MetaBrainz proposals
Matrix Archiver (libretto) (Jade Ellis AKA JadedBlueEyes)
This project proposal replaces BrainzBot with a new archival service that archives messages directly from Matrix to HTML files on disk and a PostgreSQL database. It will support Matrix features like message editing, reactions and media, and provide full text search over all messages. Both historical and new messages as they come in will be archived.
Centralized Notification System for MetaBrainz (Junaid AKA fettuccinae)
MetaBrainz contains multiple sub-projects which sends out standalone notifications. This project aims to centralize those by developing a shared notification system within metabrainz-org, enabling all sub-projects to deliver user notifications through this notification system. Expected Outcome: A functional notifications system with relevant API endpoint.
ListenBrainz proposals
Importing Listening History Files in Listenbrainz (Suvid Singhal)
This project aims to develop a feature that enables users to import their listening history from various services, including ListenBrainz exports, Spotify, Apple Music, and other CSV file formats. The proposed solution involves creating a backend API endpoint to handle file uploads, building normalizers to parse and validate data from different services, and converting the data to the JSONL format required by ListenBrainz. The solution also includes a frontend to handle file uploads and show the progress to the user.
Onboarding Revamp in Listenbrainz-Android (Hemang Mishra)
A smooth and intuitive onboarding experience is essential for any app, ensuring that users understand its features while maintaining trust and engagement. This project focuses on enhancing the ListenBrainz Android onboarding flow by making it more informative, user-friendly, and privacy-conscious. Key improvements include a dedicated Listen Submission screen to give users full control over which apps contribute listens, clear permission rationales, and fallback mechanisms for denied permissions. Additionally, a revamped sign-in screen will provide better navigation, including a bug report option for easy issue submission.
Development of Advanced User Statistics Visualizations (Granth Bagadia AKA holycow23 AKA granth23)
The project aims to design and implement advanced interactive visualizations for ListenBrainz using Nivo for data visualization and integrating with the existing Flask API. Apache Spark will handle efficient data processing and aggregation. These visualizations will offer granular insights into genre trends, artist diversity, and temporal listening patterns, enhancing user experience and engagement. The project will result in the development and integration of the following four interactive charts into ListenBrainz: Artist Listening, Activity Statistics, Listens by Era Statistics, Genre-Based Listening Patterns and Top Listeners.
Integrate music streaming from Funkwhale & Navidrome (Mohammad Amanullah AKA mAmanullah7)
Allow users to play music from their Funkwhale servers as well as Navidrome directly in BrainzPlayer, as both are self hosted music streaming platforms. Funkwhale used a OAuth2 for secure and safe authentication, but currently Navidrome used basic subsonic authentication (username/password + salt), but soon OAuth2 authentication also will be available for Navidrome. Once these are availanble, we can support Subsonic streaming in the ListenBrainz Player.
What if you’re not in GSoC 2025?
Reading this and feeling inspired for contributing to the code still? Volunteer contributors are very welcome all year round even though we might have slightly less time available to help you during the summer. It is also putting you in an ideal situation for applying to next year’s GSoC. You can find some tips for applying to GSoC with us in one of our previous posts. When you are ready, join us on the MetaBrainz Matrix Channel and showcase your initiative and your skills !