How our privacy first playlists work

One of the nice things about WebMonetistaion is that I don’t need to tell you anything about myself to send you money for enjoying your creations. I don’t need to know a wallet address, sign up, log in with a spy network or enter any bank details; Coil acts as a proxy between me & you.

We think that’s important and wanted to keep it front and centre in how Audiotarky works. But… we also want to offer features that people expect from music platforms, like playlists.

Normally a playlist would be held “server side”; you would define it on your device & then the platform would record it and let you share it to other devices & friends. How do we do that without a user signing up? Fortunately some of the issues in providing this sort of experience in a decentralised manner have been addressed already through the Offline First movement, specifically a tool called PouchDB gives us all we need for creating and storing playlists locally.

PouchDB provides a “document database” in the browser, with replication capabilities baked in. It allows us to store, index and search data locally in the browser without the need for a central server.

What data do we want to store? Well, we want to store the minimum amount to be useful; the name of a playlist & some way to identify the tracks in the playlist. Ideally that identifier is small, and of course unique. For this we’re currently using a six letter record locator (enough to uniquely identify over 2 billion tracks), each track has a long human readable URL and a short URL of the record locator, returning the metadata about the track. We can then store the small locator in the playlist and build the playlist when you load it by querying all the locators.

What about sharing? Every one loves to send their new favourite tune (or choon, or jam, or….) to a friend, and digital playlists are the mixtape of the future present. How do we facilitate that when the playlist only lives on your device?

Well, we can encode it as json from PouchDB easily, then compress it, and then simply share it as a URL. Whoever gets the link can then listen to it, choose to save it to their device, or move swiftly on to their own selection. We can also allow export of all playlists to a local file to share between devices & friends.

We’d love to hear your playlists - make some, let us know what you think and share them with us on social media!