How does one learn Solid?

I’ve been through solidproject.org and the learning materials for developers seem rather thin. There’s the equivalent of a Hello World tutorial, some explanation of vocabularies, and a list of various libraries and toy apps.

I guess my question is what path some of the more experienced Solid folks have taken to forming a deeper understanding of Solid? Given what I’ve learned thus far I think I’d struggle to create a toy app in Solid, much less a more complex, production-ready app. Are there other learning materials out there that I’m missing?

1 Like

Hi there, welcome to the Solid community :).

I think the struggle with this type of question is that Solid can be used in a million ways, so the way forward really depends on what you’re trying to achieve. In a way, you can see Solid as a database (although it’s more than that). But in the same way that a MySQL database can be used for many use-cases, so can Solid.

So let me ask you, what are you trying to achieve? Do you have any idea in mind, or you just want to learn more because you find it interesting?

Personally, the way I’ve learned Solid is reading the specs and asking particular questions when I wasn’t sure how to do something. For the most part, I’ve been building Solid apps the same way I would build any other app. Just with a different data layer, but learning the basic CRUD operations should be enough to get started.

Let me also share this list of Hello Worlds, which maybe you haven’t seen: Solid Hello Worlds

1 Like

+1 to what @rpb is saying. As an idea, Solid seems great and I would love to get cracking and see if I could migrate some of the work we are doing with Web 2.0 apps to solid.

Unfortunately the documentation is a bit sparce and most of the showcase apps don’t seem to work as they are intended. And since I’m new to the ecosystem there is no way to debug what’s wrong.

Maybe there can be a start with simple things. Like a simple video on how to setup a Pod for regular use for production and for a dev environment? Probably a recommended way to setup your profile card once your pod is up and running. Maybe a few community leaders you can reach out to on liquid chat when you first join. Happy to throw my hat in the ring for doing some of this stuff if I can learn it first

1 Like

Hei @rpb
I tried to collect some useful tutorials and example here: https://timea.solidcommunity.net/HelloWorld/

3 Likes

Hi Noel. I’ve seen your name around the forums, and in the short time I’ve spent here I can tell you’ve contributed a lot to the community. Thanks!

I see how it would be helpful to have a specific goal in mind so that an efficient path might be charted from A to B. But what if the goal is something very broad, like “I’d like to be able to develop a Solid version of any app that I, with my current abilities, am able to develop in SQL (understanding that SQL and Solid aren’t exactly equivalent)”.

The MySQL comparison is interesting to me because there are many guides to SQL out there that don’t require the student to answer the question “what are you trying to achieve?”. It can be helpful to have an idea of what you’d like to make with it, but by learning the main functions of SQL, combined with some foundational programming knowledge, one can begin to solve a diverse set of problems.

When I asked the original question, I had the impression that Solid was a more mature product, more ready for production-level use. After exploring a little bit more, it seems to me that there’s actually a long way to go before Solid will be ready for use by anyone but those most dedicated to pushing the project forward. Does my impression align with your view of the current state of the Solid ecosystem?

Thanks for your nice comments :D. I recently did a presentation talking about my path starting from zero, so maybe you find it useful: From Zero to Hero with Solid.

Well, the thing is that the basics of Solid are very simple. I think you only need to understand the following 3 things:

  • How to authenticate (I just use Inrupt’s library, so I don’t even know a lot about this part).
  • How data is structured (I learned by reading the RDF Primer and the LDP Primer).
  • How to manipulate data (By reading the other two specs you should already have an idea, but you can read the Solid spec to make sure).

And with that, you can virtually do anything. But for most people, that won’t be enough. In my case I already had experience building apps (not Solid Apps, apps in general) so I had my own ideas and I only used Solid in the data layer. Instead of writing to a database, I wrote to a POD. But other than that, I made apps mostly the same way I would’ve without Solid. Then, with more experience, I’ve been thinking on new ways to build apps empowered by Solid, because it can do more than a plain old database.

But that’s why we say that it depends on the use-case. If you only want to learn “Solid”, I think those resources are more than enough to get started.

Well, I think Solid is already production-ready for certain use-cases. For example, for the types of apps I build that are very simple conceptually it’s more than ready. The only real challenge is to find a good POD provider, and in my opinion that’s the biggest barrier for people who’s not within the Solid community. But I don’t think it’s a technical problem. It’s a bit like finding a Mastodon or Matrix server, but a lot more difficult because there are no POD providers targeted at consumers and Solid is not so popular as those two. Also the ecosystem is not mature in the sense that there aren’t many apps worth using. So there aren’t many incentives for people to use a Solid app if they can use other apps that aren’t using Solid but are a lot better.

2 Likes

seems to be down or at least loading for 10min…?

solidcommunity.net was down, but it’s back up now.

1 Like