Solid Chat App POC and findings

Hi,

We have been working on Solid for the last months to understand better the technology and came up with a small proof of concept.

Funny enough just yesterday @root66 published a wicked new app that almost does the same as ours.
We started our POC as probably everybody else, working on a explorer to understand the APIs and how they fit together. Then we moved to a chat with the idea of expanding it further to a social network where files can be shared, commented and liked.

On the explorer side of the app you have the following functionalities, upload files, create folders/files files, rename or delete files/folders. Additionally clicking on the lock icon you can see and edit your ACL.

For the chat, we have implemented in a way that you can chat only with people you both are friend with. There is no group chat yet though.

Issues we have faced and hope you can give feedback:

  • Inbox folder: When someone sends a notification to your inbox, there is not reliable way to figure out the authenticity of the sender. In order to solve this, we have created a folder under the inbox for each user (friends) with append permissions for only that user.

  • Websockets: Websockets are randomly triggered. We have them pointed to inbox and outbox folders, whenever a user modifies the log.txt of any of its user´s folder, sometimes we see that another websocket is also activated.

  • Pagination: When data grows, we tested with around 1000 messages in each folder, performance drops considerably. Taking up to 300ms seconds to read a message on a HDD. Even using SSD which would improve performance, let´s say to around 15ms per message, this would just not be enough. A total of 6000 messages would take 1,5 minutes for the app to scan.
    We tried implementing a cache system in the front end (writing all messages in one single file) but it does not scale when size increases to around 100MB. The next thing we thought about was using SPARQL in the server side but unfortunately is not in the solid spec. We were suggested to create a plugin for the CSS to allow to query over a file without having to load the whole file in the front end.

You can access the app at https://dev.ideniox.com/
There are two requirements for the app to work.Grant full control and you need to create a outbox folder such as https://ch1ch0.pod.ideniox.com/outbox/
Open code GitHub - JorgeMartinezPizarro/solid-ideniox
You also can ping me your webid and I can chat with you to test the app. Mine is https://ch1ch0.pod.ideniox.com/profile/card#me

Thanks in advance for all feedback and tips.

1 Like

hmm, the app does not show anything:

@aveltens , if you click on one of the icons on the left side of the screen nothing happens?

Exactly. Only the URL changes, but no content appears.

I see this error in the log even before clicking something:

Error: Cannot resolve relative IRI undefined because no base IRI was set. user.js:72

We have just had a look at your card and looks you have not granted permissions to the app.

We have tried rendering your card to check whether there was a problem with the app and we can see that it works?

I did not grant permissions, because I did not log in yet. Thought it just does not work, but it turns out there is a log in button in the upper right corner, I totally missed.

I get something now, but the app is not very responsive and / or broken in some places

Hi @aveltens ,
Thanks for your patience. May you try again from scratch? Deleting add permissions and try again?
It may take some seconds to load.
You can add me as friend and try sending me a message. [
https://ch1ch0.pod.ideniox.com/profile/card#me

Hi @jeffz ,
Would you like to have a crack at it and perhaps provide feedback?
Cheers!