Status of our NLNet funding

As you may already know, we recently received funding from NLNet, as part of their Search and Discovery program!

For the sake of transparency, I’m going to detail a bit more what it means for Funkwhale, and how we plan to use this funding. This will be a living document.

Why did we apply for this funding?

The Steering Commitee decided that Funkwhale should apply for this grant in September 2019. The idea was that, given the amount of donations the collective was receiving, the project wasn’t sustainable in its current state. In particular, we couldn’t pay for the work of two contributors that really needed it: Ginny, and myself (Eliot).

We drafted a proposal for that purpose and submitted to NLNet for their October 2019 deadline. It was accepted in November 2019, but at the time we didn’t want to communicate it until we were absolutely sure we’d get the funding and how.

Memorandum of Understanding

As part of the approval process, NLNet requires the writing of a document they call the “Memorandum of Understanding” (MoU).

It’s a short document that summarizes important information about the project they are about to fund, and in particular the specific tasks and corresponding amount of money they are going to pay for each one.

We signed the MoU with NLNet earlier this week meaning we’re now ready to share more information about all of this.

What will be funded?

Per the MoU, a total of 47,500€ will be granted by NLNet, assuming we complete the 28 tasks we selected.

We’ve split the tasks into several categories, listed below:

N° Category Goal Tasks Total amount I Anti-abuse Provide a safer experience to pod admins and users as the network grows 3 5000€ II Discovery and search Improve search and discovery of content within and outside of the platform 6 8750€ III Channels and podcasts Offer a new content publication system for creators 4 7500€ IV Social graph Federation of user level activities 4 5000€ V Creators profiles Enhance the experience of creators wishing to join the platform 2 5000€ VI Reference third-party content Link to tracks that aren’t on Funkwhale 1 2500€ VII Plugin system Offer additional and third-party features to pod admins and users 2 3750€ VIII Funkwhale 1.0 Stable release to guarantee backward compatibility 1 1250€ IX Retribute 1.0 1.0 of the specifications and app 5 8750€

As you can see, this covers most of our short and mid-term roadmap, which is good news!

The detail of each task is listed below. I’ll update the table when we complete each one.

Task Name Description Amount Status I-1 User-level blocking and muting Give users control over the content they see and broadcast within the app by allowing them to block or mute other users, artists or channels. 2500€ Pending I-2 Federated reports Give users the ability to forward their reports to other compatible pods/servers via ActivityPub 1250€ Paid I-3 Screened sign-ups Allow pod admins to have a queue to review new registrations before accepting them on their pod. 1250€ Paid II-1 Redesigned search UI and engine Implement a new search page with advanced filters and better display of results. 2500€ Pending II-2 Automatic following of public libraries and channels Allow optional automatic follow of public libraries and channels found on the network 1250€ Pending II-3 Easy access/follow via arbitrary URL in the search bar Support copy-pasting of arbitrary ActivityPub IRL in Funkwhale’s search bar to interact/follow content. 1250€ Paid II-4 Browsing a library’s content New screen to browse the tracks, albums and artists available in a given library. 1250€ Paid II-5 List public channels and libraries List public channels and libraries of each pod in a standard API, to improve discovery 1250€ Pending II-6 Support instance level follows to curate content Allow pod admins and moderators to follow content at the pod level to improve the experience of their users 1250€ Pending III-1 UI for listeners Design and integrate the new user interface for listeners so that they can interact with channels, subscribe to them and discover content. 2500€ Paid III-2 Upload and channel management UI for creators Design and integrate the new user interface for creators, so that they can create and manage their channels, and publish new content. 1250€ Paid III-3 Compatibility with podcasting apps Ensure channels can be accessed from podcasting apps by providing a compatible RSS feed for each channel. 1250€ Paid III-4 Compatibility with other fediverse software Ensure other ActivityPub implementations supporting Audio activities can subscribe to Funkwhale channels and receive real-time updates when new content is published in a channel. 2500€ Paid IV-1 Following other users Allow users to follow other users on the network. 1250€ Pending IV-2 Broadcast and display listenings and favorites Broadcast user listenings and favorites to followers 1250€ Pending IV-3 Playlist federation Expose and handle playlist information over ActivityPub 1250€ Pending IV-4 Use the user social graph to power discovery Recommend content to users based on activity from other users they follow. 1250€ Pending V-1 Claiming profiles Allow creators to claim their profile on a Funkwhale pod that already feature their content 2500€ Pending V-2 Add arbitrary links to profiles Allow creators to attach arbitrary links to their profile, so that they can for instance reference content on other platforms 2500€ Pending VI-1 Link to tracks that aren’t on Funkwhale Retrieve and display links to tracks that are available on third-party platforms. 2500€ Pending VII-1 Foundation of the plugin system Design and integrate the plugin system into the codebase. 2500€ Paid VII-2 Scrobbling plugin for compatibility with Last.fm and other similar services Build a simple plugin that can be used as an example by other plugin developers 1250€ Paid VIII-1 Freeze and document missing APIs Improve our documentation, and especially document missing API endpoints to ensure developers have what they need in order to integrate Funkwhale with their own applications and projects. 1250€ Pending IX-1 Suggestions feeds specification First version of the suggestions feeds specification, intended for content platforms like Funkwhale to expose suggestions to end-users using Retribute. 2500€ Pending IX-2 Profiles specification First version of the profiles specification, intended for content creators to describe how/where they want to receive contributions. 2500€ Pending IX-3 Inclusion in Funkwhale Implementation of the Suggestions Feed specification into Funkwhale, based on user favorites, listenings and follows. 1250€ Pending IX-4 https://api.retribute.me development to work with the new specs Update our open-source Retribute API at https://api.retribute.me to understand and output content that is valid according to the new specifications. 1250€ Pending IX-5 https://app.retribute.me development to work with the new specs Update our open-source app at https://app.retribute.me to work with the new specifications. 1250€ Pending

Payments

Two thirds of the paid amounts will be paid to Eliot, and one third to Ginny (this reflect the fact that Ginny works half-time on the project, and Eliot full-time).

NLNet additional services

In addition to the funds, NLNet provides several services to the projects they support. In particular, their partners will perform an accessibility and a security audit on the project, and help us solve any issues discovered during the audit.

Conclusion

That’s pretty much it! Feel free to ask questions, or for clarification.

Also, thanks again to NLNet for their support!