Comment on Developing a self-hosted alternative to Google Keep
bruce965@lemmy.ml 1 week agouse case is a shopping list for my SO and I. I want to be able to add stuff throughout the day, and cross them off once I grab them from the shelf, and separately be able to clear completed tasks
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?
[Simple Chat] Why not just use one of the other Matrix clients?
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.
[Simple Docs] This seems overly ambitious.
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.
No. Matrix is designed for chat, not data, and self-hosting it requires a fair amount of resources.
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.
I’d personally just DIY it since it’s really not a ton of logic
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.
Matrix is designed for chat, not data
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 week 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.