this post was submitted on 07 Apr 2025
177 points (99.4% liked)

Selfhosted

45813 readers
326 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

Hi! I'm a software developer working on a suite of collaborative self-hostable apps to replace proprietary services I couldn't find a good replacement for.

I am writing this post to seek opinions and ideas now that I am still in the early prototyping phase, before it's too late to change track.

My idea is to develop a collection of simple single-purpose apps that do one and only one thing. The first app will be called Simple Notes (mirror), a replacement for Google Keep. Every operation is encrypted locally on the client, and the server never sees plaintext data. I am investigating federations models to let users connect to other instances and work collaboratively, much like Lemmy.

So, my goals in order of priority are:

  • No compromises on privacy and security
  • Completely FOSS
  • Real-time collaboration between users
  • Asynchronous collaboration (work offline, sync when back online)
  • One account to operate on all apps in this suite
  • Web UI / desktop UI / mobile UI
  • Minimal interface which my grandma can use, no feature-bloat
  • No anti-features such as advertisements, tracking, etc...
  • Self-hosting
  • Federation

After Simple Notes, I plan to keep developing other simple apps, some ideas on my list:

  • Simple Notes - Replacement for Google Keep
  • Simple Split - Replacement for SplitWise
  • Simple Chat - Replacement for WhatsApp/Slack/Meet/Teams
  • Simple Docs - Replacement for Google Docs
  • Simple Draw - Collaborative drawing app
  • Simple Calendar - Replacement for Google Calendar
  • Simple Contacts - Replacement for Google Contacts (suggested by @[email protected])

Initially I started writing my own protocol (mirror), operating quite differently from Lemmy's, but then I realized that someone else already has developed a protocol for this purpose: Matrix. It is (optionally) E2EE, it's FOSS, and it's federated. So yeah, it sounds like the perfect choice to me. Also, if I pick Matrix, Simple Chat will just be a reskin of Element, so development cost is almost zero.

So, a questions for the developers on the Lemmy Selfhosted community: do you think piggybacking the Matrix protocol would be a good choice? Do you know any alternative that might be more suited for this purpose?

And a question for all Lemmy Selfhosted users: is there a simple app that you would like me to add to the list?

Bonus question: do you know of any Lemmy community where I could repost?

Thank you very much for the time you spent reading my post!

--

Link to source code on my server and GitHub mirror.

--

EDIT: I might have been a bit unclear on my objective. My intention is not to just build a replacement for Google Keep, that's just the first step of the idea I had. My objective is to build a template from which it should be possible to build all sorts of apps to collaboratively work on documents of various types. Simple Notes (Google Keep) would be for text documents, Simple Split (SplitWise) for expenses (because a list of expenses is a document after all), Simple Chat (WhatsApp) for chats (oh yes, I would say that a list of messages is also just a document), Simple Docs (Google Docs) for... well... text documents, Simple Draw for canvas documents, and finally Simple Calendar (Google Calendar) for a calendar (which, why not, is also document!).

So yeah, I don't want to just find/build an alternative for Google Keep, I want to find/build a tool to build all sort of simple collaborative apps on top of.

What I am looking for is not the recommendation of an app to simply replace Google Keep, I am looking for a template or even just a protocol on top of which it's possible to build collaborative document-editing apps.

(page 2) 25 comments
sorted by: hot top controversial new old
[–] [email protected] 4 points 1 week ago (2 children)

Why not use Joplin? Open-source, very flexible, I run it on a bunch of devices and sync it via a EU cloud provider over S3 in an encrypted bucket…

load more comments (2 replies)
[–] [email protected] 4 points 1 week ago* (last edited 1 week ago) (1 children)

Hey Hey! What a fantastic idea, I sure hope you can manage!

I was immediately wondering why you wouldn't hop on projects already out there. For example: I recently ditched google Keep // Trello for Joplin, which i think already ticks alot of your boxes, even Async collab should work (but not realtime, and you'd have to manually resolve conflicts). Maybe adding better collab in Joplin is a more efficient way to spend your time? LibreOffice also has Async collab, since I think about 6 months, so while it might be young, it will grow, and might also benefit from another person putting their time towards it.

Whatever you choose to do, I'll be super interested to see the results.

[–] [email protected] 3 points 1 week ago (1 children)

As far as I know, Joplin is not really real-time collaborative, nor federated. I was using it a few years ago and I like it, that would be a great suggestion for people not interested in those two things.

why you wouldn’t hop on projects already out there

Ah... that's... yeah, that would probably make a lot of sense. I think that to us developers it's much easier to come up with our own ideas than to hop onto other projects unless they align very well with our vision. It's quite unusual to find other people with our very same goals. I'll be honest, I code for fun. I would like to build this tool because want it more than because I need it, as there already are both Google Keep and Joplin after all. If there was an alternative out there with most of the feature features I need, in a programming language and framework that I am familiar with, I would probably have joined or forked it. But no, unfortunately that's not the case. My goal is not to just find/build a replacement for Google Keep, my goal is to find/build a framework that can be used to build more collaborative apps in the future. A replacement for SplitWise is my next goal immediately after Google Keep, and I assume (hopefully not too naïvely) that once I will have a starting point, making more similar apps will be virtually free in terms of time required.

Actually, I was just so incredibly lucky that the Matrix protocol seems to overlap almost exactly with all the things I had in mind. I had included a few more features in my draft for a custom protocol, but honestly adopting something already made would save many tens of hours of work, so joining something already existing sounds like a good idea. I don't think I will be able to contribute code to it though, as it's developed in a language I am not familiar with (yet), so if I decided to go for Matrix after all, I will just be joining as a consumer.

LibreOffice also has Async collab [...] might also benefit from another person putting their time towards it

Oh, that's actually good to know, thanks! Personally, at the moment I use Google Docs when I need to work in real-time on a document with someone else. In my opinion it's just too convenient to just be able to share a link which can be opened with a web browser from any device and operating system. There are some good self-hostable web options for documents imho though, which are probably less resource-demanding than LibreOffice.

Unfortunately I am not interesting in contributing to LibreOffice. I have installed it on all of my devices, but I almost never use it.

Whatever you choose to do, I’ll be super interested to see the results.

I'll take that as an encouragement! Thanks!

[–] [email protected] 3 points 1 week ago (1 children)

I think I understand your requirements more clearly now, a framework for FOSS collaborative work would be really great. I Hope you can find a way to use Matrix for it. Thanks for the explanation.

Man, I loved the google docs realtime collab functionality, they pretty much nailed it day 1 in my eyes. It's so easy. If your project works/takes off it should be a lot more straightforward for FOSS projects to incorporate it. Hype!

[–] [email protected] 1 points 1 week ago

Well... if a FOSS project wants to incorporate collaborative work they could already do it, well... through Matrix for instance.

They might (depending on how the application works) also need to implement additive changes and possibly also a conflict resolution UI if they want to support synchronization from offline changes. But I'm afraid both these things might be very application-specific.

I'll be honest, I don't think much of what I have in mind would really be adoptable by existing projects. But I'll do my best to keep everything relatively modular just in case.

Thanks (again) for the encouragement!

[–] [email protected] 3 points 1 week ago* (last edited 1 week ago) (3 children)

Simple Notes - Replacement for Google Keep

Yes please!

My use 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.

Do that and I'll try selling my SO on it.

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:

  • state changes - same as a non-collaborative app, but you also need to pick who wins
  • users and their locations in a document - can even send unsaved snippets as well

I'd personally just DIY it since it's really not a ton of logic, no reason to bring a whole protocol into this.

But hey, maybe it'll work out great. Having more options is generally a good thing.

[–] [email protected] 3 points 1 week ago (1 children)

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.

[–] [email protected] 2 points 1 week ago (1 children)

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).

[–] [email protected] 3 points 1 week ago

The shopping list alone is beautifully done. Glad that I could help 🙂

load more comments (2 replies)
[–] [email protected] 3 points 1 week ago* (last edited 1 week ago) (1 children)

Could you maybe work with someone together, or get inspiration from something like the docs project from the european union https://docs.numerique.gouv.fr/ ?

Moreover, I'm an "advanced user" and I want to write with markdown and/or typst. A wysiwyg typst editor would be amazing

Edit: did I mix google keep and docs? Probably. Sorry 😅

Edit2: are you looking into vjournals? https://connect.mozilla.org/t5/ideas/support-vjournal-in-thunderbird/idi-p/46295

[–] [email protected] 3 points 1 week ago* (last edited 1 week ago)

Oh yeah, I looked into and tried some of the European collaborative docs softwares, in particular I like this Numerique's clean Material UI interface and I'm definitely going to take inspiration from it (although I haven't installed and tried it, I just checked screenshots). Although, if you are recommending it as an alternative to my idea, Numerique doesn't seem to be federated, nor to be privacy-centric (well... it is if you self-host, but my idea is to let people collaborate through different servers, like Lemmy, I don't want users to need to trust the owner of the servers they join). And I really need an alternative to Google Keep more than Google Docs. I'll be honest, Google Keep is really well made in my opinion, I would say we don't yet have a good self-hostable alternative.

did I mix google keep and docs

Yeah, Google Keep is more like for text snippets, links, checklists, scribbles, and images. Google Docs is a full-fledged RTF editor. I was planning to implement the two things separately. I considered implementing Markdown in the Google Keep replacement, but I am still undecided whether it might count as feature-bloat.

vjournals

Oooh, that's nice. I know about VCard and VCal, but I didn't know about VJournal. Thanks for the hint, this might be very useful!

[–] [email protected] 2 points 1 week ago (1 children)

Except for federation, you described Notesnook, although it's a bit hard to self host because the server parts are in alpha with few documentation. I wanted to try it but it looked too complex (hard to backup and hard to maintain) with all those server components, mongodb in a replica set and S3

For self hosting, why e2ee? It makes backups much more complicated than having plain text/images on the server. Consider making it optional 😊

load more comments (1 replies)
[–] [email protected] 2 points 1 week ago (3 children)

Really interested on seeing this, although if I could make a suggestion, start by scouting around and see if you can adapt FOSS apps, maybe fork them and add/remove features to please your objectives and tastes.

Although I'm eager to see these through, I like projects like murena (/e/OS) that cobble together good Foss projects into a single cohesive ecosystem (without making the word ecosystem gross and vendor locked in like in most cases)

load more comments (3 replies)
[–] [email protected] 1 points 1 week ago

I wish you best of luck

load more comments
view more: ‹ prev next ›