Music Platform

Thanks for the wireframes :).

Overall I think you’ve got the right idea, but maybe you’re missing something when it comes to the information architecture: Where’s the data? Which is understandable, this is what makes Solid different from other technologies after all.

There are different ways to go about it, let me share some ideas.

A “Pure” Solid Application runs entirely in the browser and has no server-side component, that’s what makes it completely decentralized (this is my own definition, there’s nothing in Solid forcing you to do this). So the application itself has no data, and the first thing a user should do upon visiting the app is introduce where they want to get the data. For example, adding their favourite artist’s WebId, or if they are an artist logging in to manage their media collection.

But of course, most users don’t know where to get started, so it’s a good idea to provide something. But I think it’s important that this “something” is opt-in, your app should still work without this. Again, this is just my opinion, you can do a Solid app with a hard server-side dependency if you want.

In your case, the trouble is where to get this information. I have done a couple of apps and I’ve been lucky enough to find public information available (for movies I’m using TMDB, and for recipes I’m using the web itself). But what you need is a database of artists’ Solid WebIds, which you are not going to find. So your app/service will probably need to become this database, at least for now.

One similar use-case that comes to mind are podcast applications. If you ever use one of those, you’ll see that you can search for podcasts, which is weird because podcasting works using RSS that is a decentralized protocol. That’s because they’re using a public database (for example, podcastindex.org). But you can still add feeds on your own that aren’t listed anywhere. I think that’s the same idea, your app can provide a service to find artists’ music, but it should work even with Solid PODs that aren’t listed in that database. Even better, this database of artists should be decoupled from your app so that other people can build their apps that are compatible with yours.

So, to summarize, your app needs to connect with:

  • A backend service giving access to a database of artists. This can be your app itself, but it can also be decoupled as an external API. Furthermore, it could be a Solid POD with public indexes listing artists’ WebIds. But this will probably complicate things, personally I wouldn’t recommend starting with this (although it’d me mighty cool).
  • A user POD (optional), this is just needed if the user wants to upload their own music or save favourites, create playlists, etc.

I hope that’s helpful, and let us know how it goes :).

3 Likes