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 @Churbleyimyam@lemm.ee)
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.
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)
I see lot of people are recommending me to contribute to existing projects instead of reinventing the wheel. I want this app to be as close as possible as I envision it, I couldn’t find something close enough to what I had in mind (in particular these three things do not seem to get along well: real-time collaboration, simplicity, reliability/stability). But I’ll be honest, I code for fun and I am lazy. Even if there was another project similar enough to this, I don’t think I would want to invest time to learn all the details and then more time to see if it can be adapted to my vision. Starting from scratch is easier, even though it might not be as beneficial to the FOSS community. Still, thank you for suggesting this, that sounds like it would be the smartest thing to do.
Also, I didn’t know about Murena, thanks for mentioning it!
Oh no, don’t take it as “don’t reinvent the wheel”! I meant it in the true sense that sometimes we spent so much effort and focus building something, just to post about it somewhere and getting a reply “Oh nice, it’s exactly like X project!”.
Currently I’m running NextCloud on prem, so DavX5 and JTXBoard cover most of my note taking and todo tasks, and I guess one could deploy the server-side encryption module on a NextCloud AIO on a VPS and keep everything (probably) safe and private. I’m kinda lazy too, that’s why I liked the hands-off maintenance of NC-AIO. I get notifications to update stuff, and I get regular security audits from NC itself.
BTW, never take that “doing stuff already done” is in detriment of helping FOSS projects. There are tons of examples of people randomly tinkering around and accidentally finding some huge fix for other projects. Off the top of my head, some weeb wanted to play Nier Automata at decent framerates on wine and a few years later, here we are with DXVK and all the proton stuff making most stuff playable!