Regarding your requirement, you might want to take a look at KitchenOwl.
If you prefer freestyle notes/lists, Joplin can share and sync note collections as well.
Comment on Developing a self-hosted alternative to Google Keep
sugar_in_your_tea@sh.itjust.works 1 year ago
Simple Notes - Replacement for Google Keep
Yes please!
Simple Chat - Replacement for WhatsApp/Slack/Meet/Teams
Why not just use one of the other Matrix clients?
Simple Docs - Replacement for Google Docs
This seems overly ambitious. The thing I like about Google Docs is all the rendering features and whatnot, I don’t really use the collaborative editing part. If you really want the collaborative bits, those exist.
do you think piggybacking the Matrix protocol would be a good choice?
No. Matrix is designed for chat, not data, and self-hosting it requires a fair amount of resources.
For something this simple, I don’t think there’s an “out of the box” solution here, nor do I think there needs to be one. The main things you need to handle are:
I’d personally just DIY it since it’s really not a ton of logic, no reason to bring a whole protocol into this.
Regarding your requirement, you might want to take a look at KitchenOwl.
If you prefer freestyle notes/lists, Joplin can share and sync note collections as well.
KitchenOwl
Nice! You sir or madame are a wonderful person. This does far more than we need, but honestly, those features look like something we should use anyway (esp. recipes and meal planning).
The shopping list alone is beautifully done. Glad that I could help 🙂
bruce965@lemmy.ml 1 year ago
Sorry for the late reply. Oh yes, that’s what I like about Google Keep, the collaborative aspect. What do you mean by “separately be able to clear completed tasks”? Do you mean being able to do it from multiple devices which are synchronized in real-time?
Yes, you have a point… let’s keep Simple Chat for later then. I had this idea of making an app for each of my needs and let them all connect to a single server with a single unified user. Good quality Matrix clients already exists, I guess there is no need to build a custom client for the chat if I end up adopting Matrix as the protocol.
Let’s say that’s a longer term goal for the future. I might be underestimating the complexity of Google Docs, but if you think about it I would say it’s not much more than a rich-text editor. Basically it’s the same things as text notes, just with a bit more formatting options. I couldn’t say the same thing about Google Sheets and Google Present.
Why do you think so? I have tried it and it seems to be as simple as any other server thanks to Docker. I have a script to launch it here (mirror). It seems to use 160MB of memory and about 1% of my CPU when idle. I haven’t done any serious tests though, maybe it wouldn’t scale as well as I think.
Well… there must always be a protocol behind it, it can be as simple/specific or as complex/generic as you want, but there must always be an agreement of the format of data exchanged between client and server.
By adopting the Matrix protocol, there wouldn’t be any need to write a custom server, because Matrix servers already exist.
What’s the difference between chat and data. A chat is a list of messages. A collaboratively-editable document is a list of changes. As far as I understand, Matrix uses “events” to describe things happening. When a user sends a message, the server emits and event like “add user X’s message Y to your list of received messages”. It shouldn’t be too different than emitting an event “replace text at position X with Y” every time a document changes. They even have ephemeral messages for temporary state, such as “the user X is currently typing”. That should be similar to “the user X placed their cursor at position Y”.
Do you think I might be oversimplifying or thinking it wrong?
sugar_in_your_tea@sh.itjust.works 1 year ago
I just mean keep the list of completed tasks until I manually push clear, just like Google Keep does (cross them out), and only clear the completed tasks when I push a button.
Basically, I sometimes mark tasks done on accident, and sometimes I’ll carry the extra tasks on to the next trip.
It has a lot more formatting options:
You could get something pretty useful by just making a collaborative Markdown editor, but then it’s not really a Docs replacement, but more of an Etherpad replacement.
That’s fine, I guess I’m more concerned about scope creep ultimately killing the project.
Sure. I guess my point is that Matrix is targeting text, audio, and video chat with hundreds if not thousands of simultaneous users in one room, all with E2EE enabled.
A Google Keep replacement doesn’t even need to be real time collaborative, and it certainly doesn’t need to support hundreds of simultaneous users on a given document. It’s like using a chainsaw to trim a bush, it’s way overkill, and there’s a decent chance of changes to the protocol breaking stuff for you since you don’t need most of the features.
The backend for this just needs to notify other clients of a change, real time isn’t necessary or even particularly helpful.
And you’d still need an application server to handle the storage and retrieval of the data, no? So all Matrix is buying you is synchronization, which is just a simple pub/sub.
You don’t really need a list of changes for a shared TODO app. The data is going to be small and going back in time isn’t that useful.
Maybe it makes sense for something with revision history, like a DIY
git. But TODO lists are ephemeral, and I really don’t care about them after I’m done with my shopping trip.Seems like overkill to me.
Maybe it makes sense for something more fancy like an Etherpad or Confluence replacement, but not for a shopping list.
Build it however you like and prove me wrong, I’ll check it out if it solves my problem.