It’s great to see it’s announced here. Very elegant interface. Though unfortunately it has some i18n issue (Doesn’t work with Chinese content.)
I noticed “offline-first” this time, which triggers my alarm about CRDTs (I see you mentioned this elsewhere) – I’m trying to understand how CRDTs work and how to work with Linked Data for a synchronization mechanism like CRDTs (thus enabling the possibility, though maybe not very useful, to use Solid Pod as a backend/peer).
How is offline-first implemented for Umai? Is it storing data inside browser storage, and send/sync that with the Solid Pod; or is it using CRDTs, with one peer storing to Solid Pod (thus having the ability to connect with more peers)?
TLDR: The data is stored locally in IndexedDB, and when it’s synchronized with the POD other than the recipe data, a list of operations are sent. That way, when other devices get data from the POD they’ll get the operations and merge changes instead of overriding. But yeah, it’s CRDT mediated by the POD, not peer to peer (although technically the architecture allows it to work that way, but I haven’t implemented it).
Ok, I was assuming you meant that it didn’t work using the “Import from the web” functionality. If it doesn’t work by creating a new recipe from scratch that’s even worse . I guess you can write the Chinese text in the GitHub issue (like recipe name, description, etc.) and I can reproduce the problem by copy-pasting the content.
Yes, that’s one of the concerns I raise in that thread :/. I don’t have any solution for now, so I’ll see how it goes and find some solutions when and if it becomes a real problem. Some ideas I have for example is squashing history and such, but I figured it’ll probably take a long time until I need to tackle that.