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.

  • warmaster@lemmy.world
    link
    fedilink
    English
    arrow-up
    15
    ·
    edit-2
    6 days ago

    There’s already an international open source and federated standard for Journals, Tasks and Notes. It’s called iCalendar-standard (RFC-5545) . See the VToDo component, relevant for your Google Keep alternative.

    Also check out JTX Board

    Pros:

    • FOSS
    • Federated
    • List, Grid, Kanban views
    • Reminders
    • Alarms
    • Location
    • More

    Cons:

    • Markdown only, no WYSIWYG.

    Syncing:

    • WebDav server (many FOSS and selfhostable servers available). For mobile client there’s DavX.
    • WebDav Encrypted sync server Etesync which is FOSS and selfhostable.

    These standards and protocols are compatible with almost every software remotely related, including Thunderbird, KDE’s Kontact, and many more. And the feature set matches or even exceeds Google Keep’s capabilities.

    My humble opinion is that you don’t need to reinvent the wheel, just build on top of what is already widely used, tested, documented, FOSS, privacy respecting, standards compliant, audited.

  • BackgrndNoize@lemmy.world
    link
    fedilink
    English
    arrow-up
    9
    ·
    7 days ago

    I’ve started looking for a open source alternative to Keep recently as well, following are few features I’m looking for in random order, maybe you could look into implementing some of these. Once I get some free time I can try to contribute to the code as well.

    1. Cross platform with sync - iOS, Android, Web, Windows, Linux (Sync should not need to rely on 3rd party servers, should be able to use free syncing solutions)
    2. Free
    3. Open Source
    4. Easy to export all my notes / data in a open format like markdown etc.
    5. Hackable - can make automations that connect to other apps like Obsidian, TickTick, maybe using some API?
    6. Good notes search functionality, with search inside a note option
    7. Notes organization, via tags and folders
    8. Notes linking like Obsidian ?
    9. Google Keep like virtual pinboard of notes display, AKA masonry layout ?
    10. Markdown support for lists, links etc
    11. Runs in the background (system tray) in Windows / Linux and can be brought up and a new note added quickly using keyboard shortcuts like TickTick.
    12. Reminders / Alerts For Notes
    13. Pin Notes
    14. Notes Can Contain Rich Links, Images, Sound, Video

    P.S I think notes collaboration might be a anti feature, it takes away from the simplicity of it and I don’t think most people take notes to share with others, I think for most people notes are personal, so I don’t know how many would want this feature.

    • Scrollone@feddit.it
      link
      fedilink
      English
      arrow-up
      7
      ·
      6 days ago

      Honestly, shared notes is my #1 most used feature. I have many shared notes with my family (e.g. shopping list, movies to watch, etc.)

    • BackgrndNoize@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 days ago

      Regarding multi platform targeting, have you considered something like React Native or Flutter, one code base that can run on any platform might be useful at least for the MVP stage.

      Also the reason I mentioned exporting is that I’ve had to deal with a bunch of notes apps in the past where the company behind it shuts down or gets sold and then you either have to figure out how to export all those notes or risk losing them and that’s why I mostly use Obsidian on the desktop now cause even if the company behind it disappears all my notes are in my control and are in markdown format which means they can be imported into any other notes app easily.

      And the 3rd party integrations API would help in getting more value out of your notes, right now I feel all my data is siloed across several apps, the articles I read and their highlights are in Pocket, my Kindle has my book highlights, my long term notes are in Obsidian, my short term notes are in Keep, my Todos are in TickTick. I am looking into a way to consolidate all the different sources of data to get synced into one platform so I have it all centralized, I saw recently that TickTick added a integration with Notion. I’m hoping to find a quick notes app that can be made to easily sync with Obsidian. Right now I tag Keep notes that I want to copy to Obsidian and then manually copy them on weekends.

      • bruce965@lemmy.mlOP
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 days ago

        Regarding multi platform targeting, have you considered something like React Native or Flutter

        I have! I use Flutter in a professional setting and I do not hate it, but I am madly in love with React (not Native) for my personal projects. I tried React Native in the past and I found it a bit finicky, but it was just a “brief encounter”, so I might change my mind about it in the future. For now I would go with Electron to save time, but I do not exclude the idea to build a desktop + mobile interface in Flutter in the future. React (not Native) can also run on any platform, that should be more than enough for the MVP.

        I absolutely do not want to go with Flutter for the web though, as I feel like it’s the exact opposite of what I would dream the web to be. I feel like Google built Flutter to give Android developers a tool to make apps with the excuse “oh yeah, it works on browsers too” and call it a day. Flutter basically bypasses most of the things that browsers do and in my personal opinion it re-implements everything more poorly than how a traditional web app would. Come on, they even built their own layout engine and even a rendering engine, was that really necessary? Browser extensions don’t integrate well with Flutter apps, and the debugging experience is subpar. I really like Flutter for Android and desktop apps, and I might even say it’s easier/simpler than Android Studio (Kotlin), but personally I feel like it’s just a big dirty hack in the web context.

        Okay, I just realized that my reply sounds a lot like a rant. My apologies. Please consider this as my current view on these tools, it might change in the future. It’s not a criticism.

        the company behind it shuts down or gets sold

        That’s an important concern. Well, the source code is AGPL 3.0, so there is no risk of it disappearing. Also, this would be my hobby project and I absolutely do not expect it to ever become anything commercial. I do not even plan to accept donations or anything like that. Basically it’s something that I need, and since it doesn’t exist I am considering building it myself.

        There is a big probability that I might stop working on it either because I find it “good enough” for my needs or because I won’t be able to work on it anymore, but I would say I’ll try to keep it as simple as possible, so it should be relatively easy to maintain. Also, relying on Element (Matrix) maintain the server code would mean I just need to maintain the client, which should cut the work down by 50%. I strongly hope Matrix will never shut down or get sold.

        In any case, okay! Let there be the possibility to export data in a common format! (Preferably Markdown)

        I feel all my data is siloed across several apps

        Matrix supports a way to integrate with third-party data sources, but I haven’t read too much into it as it was not in my goals. Perhaps a Synapse (Matrix) plug-in might allow to integrate notes with third-party sources without having to make any changes to the client code. I might investigate this possibility in a later stage.

        • BackgrndNoize@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          5 days ago

          Yeah my past experiences with React Native was finicky as well, but that was a few years ago, haven’t tried anything in Flutter yet, but I see your point. I thought Matrix was just a distributed chat protocol, I’ll look into it more regarding synapse

    • bruce965@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      6 days ago

      Whoa, that’s a long list of ideas… let me see…

      1. That’s the plan, excluding iOS as I do not have a Mac and thus I cannot develop for it
      2. Certainly
      3. Certainly!
      4. That’s not part of the MVP (minimum viable product) I have in mind, but an export function must certainly be added later
      5. Plug-ins are not part of my goal, but I will do my best to keep the source code modular enough to let people adapt it freely
      6. We agree on that, global search is necessary, but I did not think about a “search inside a note” option. That seems to make sense, I’ll see what I can do
      7. Tags are part of my idea, although not the MVP, but folders are not; I will see if I can also add folders without complicating code and UI too much, that doesn’t sound like a bad idea
      8. Not part of my goal, but maybe in a future iteration
      9. Yup, that’s what I had in mind too
      10. As a developer I like Markdown, but it is not on my priority list… perhaps in a future iteration. I was thinking to (maybe) use Markdown behind the curtains, so it might not be too difficult to let users toggle the WYSIWYG
      11. The first UI that I am planning to develop will be for the web browser, then a lazy-man Electron UI for the desktop as well as something for Android, I just wanted to do something simple. I don’t have the time and skills to do deep desktop integration, perhaps in the future, or maybe someone might contribute this feature if this project actually manages to become something interesting
      12. That’s not part of the Simple Notes app I was thinking about, but that would make sense for Simple Calendar, perhaps in the future I might consider linking notes and reminders, but that’s not something I am thinking about yet
      13. I did not think about that, that’s a good idea, I’ll see what I can do
      14. The first version will not let you upload media, but images are planned. I did not think about sound/video/documents, but I guess why not?

      I think notes collaboration might be a anti feature

      That’s the main reason why I decided to build this suite of apps in the first place. I want to be able to work collaboratively on things with my girlfriend, and we must be able to do it in real-time. I realize that this will eat away a big chunk of the total time I will dedicate to this project, but it is also the main reason why I am not satisfied with the options currently available.

  • Dangerhart@lemm.ee
    link
    fedilink
    English
    arrow-up
    5
    ·
    6 days ago

    I would love a replacement for keep. I’m currently running nextcloud and the UI differences or lack of android widgets are keeping my wife from switching. Most of of your list already has great replacements that exist but for some reason a keep competitor that is current just doesn’t exist

    Carnet is a nextcloud app that comes pretty close and but it needs a TON of TLC on the server side. I keep telling myself I’ll work on it but life gets in the way. If you have time and know node/php I would suggest looking there instead of making yet another note app. Nextcloud can handle sharing and has some encryption stuff as other plugins etc. Otherwise keep posting here, I would love to follow your progress.

    • bruce965@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 days ago

      Okay, that’s a nice suggestion. I was thinking to try to keep the UI more generic rather than integrate it with operating systems, but an Android widget might not be too hard to do, I might investigate later.

      I do know Node, but I am not skilled with PHP, I haven’t used it for 10 years and I’ve noticed that things have changed a lot since the version I knew. I feel NextCloud is a bit overbloated, but I didn’t think about checking how they handled the communication part, that’s a good idea. It doesn’t overlap much with what I had in mind, but I might still be able to learn something. Thanks!

    • MrMcGasion@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 days ago

      The Nextcloud Notes app for Android does have a couple of widgets (note list and an individual note), is there widget that is missing?

      • Dangerhart@lemm.ee
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        3 days ago

        For that one it’s not the widgets but the notes behavior. She wants check lists that self organize as they get checked. In the app itself she wants the post-it note like layout

        Edit: multi layout that shows the contents instead of just title would be nice too

        • MrMcGasion@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          3 days ago

          Yeah, check lists in Notes could really use some improvement for sure. Honestly, just now looking through the Github for the Android Nextcloud Notes app it looks like there’s a good deal of technical debt that has been stacking up over time from trying to bring more modern features to what started as a minimal text-only notes app.

          There is a way to enable “grid view” in the app settings for the more post-it view that shows the first part of the contents, but doesn’t seem to show on notes with markdown formatting, so anything with a list doesn’t show a preview.

  • Lovable Sidekick@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    6 days ago

    I think any app for text input should have word prediction. It’s mostly for phone users but I’ve found it so handy since getting a phone where it’s well implemented (Pixel 8) I’ve quickly come to think of it as an essential component that should be available to any app.

    • bruce965@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 days ago

      Ah, that’s a good suggestion, but definitely out of my scope. Since I want to make a web UI first, users could look for a word prediction plugin for their browser if that’s something they are interested in. Still, thanks for the suggestion!

    • bruce965@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 days ago

      I didn’t know this term! I knew about DAGs which are probably a way to implement CRDTs. I just read the definition on Wikipedia, it says that “[CRDTs feature] an algorithm (itself part of the data type) automatically resolv[ing] any inconsistencies that might occur [in case of conflicts]”, that sounds interesting. I was thinking to try to resolve conflicts automatically whenever possible by adapting Git merge strategies, and when impossible: either just concatenate both versions and let the users fix it manually, or giving users the option to choose line-by-line which version they want.

      With this keyword I might be able to find more literature on the topic. Thank you for suggesting it!

  • Churbleyimyam@lemm.ee
    link
    fedilink
    English
    arrow-up
    6
    ·
    7 days ago

    What I’m currently missing is a simple app for keeping contacts synced between my android phone and Linux desktop.

    Excited to see what you do!

    • Suzune@ani.social
      link
      fedilink
      English
      arrow-up
      5
      ·
      7 days ago

      I use Nextcloud for that. On Android phone it’s DAVx5. Thunderbird can use the contact via CardDAV, DAVx5 syncs them with the Android addressbook. Fossify Contacts is nicer than the Google contacts app.

      The same way it’s done with my appointments. I have also replaced the native Google calendar with the Fossify Calendar here, because it’s less annoying.

      • Jolteon@lemmy.zip
        link
        fedilink
        English
        arrow-up
        1
        ·
        7 days ago

        That’s what I use, but I don’t think anybody would say that next cloud is a simple app.

    • Shimitar@downonthestreet.eu
      link
      fedilink
      English
      arrow-up
      4
      ·
      7 days ago

      Radicale is an amazing light and efficient CardDAV/CalDAV server. Pair with Dav5x on android and you are fully setup.

    • bruce965@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      7 days ago

      That’s a good idea and it shouldn’t be too difficult, especially as it wouldn’t even really need collaboration. If I manage to get this thing started I’ll try to add this suggestion to the list of apps. Thanks!

  • K-Money@lemmy.kmoneyserver.com
    link
    fedilink
    English
    arrow-up
    4
    ·
    7 days ago

    There are several decent note apps that strive to replace Google Keep, but they all seem to fall short on the one feature that keeps me on Keep: Reminders. Being able to jot a note and have it pop up later today, on the weekend, or on an arbitrary recurring schedule is the primary use-case for me. Joplin’s come the closest but the reminders were unreliable, and an unreliable reminder is a useless reminder.

    There’s also something to be said for the number of clicks/menus/presses it takes to create a note. If it’s meant to be just a quick note when something pops into your head then it’s nice if it doesn’t take more than a click or two to get it down.

    One last thing. A feature that I think would greatly enhance adoption would be an option to import existing Keep notes from a Google Takeout into your Simple Notes.

    • bruce965@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 days ago

      I have to admit that I didn’t really think about reminders. That would perhaps make more sense for Simple Calendar, perhaps in the future I might consider linking notes and reminders. Or maybe it would make sense to implement it directly in Simple Notes? I don’t know, I’ll keep that in mind for later, thanks!

      the number of clicks/menus/presses it takes to create a note

      I strongly agree on that. It must be at most as many clicks as on Google Keep, i.e. two clicks (plus a few to open the app).

      import existing Keep notes from a Google Takeout into your Simple Notes

      I didn’t think about that. That shouldn’t be too hard. After the MVP (minimum viable product) will be ready, imports from various common formats should be implemented, and I guess Google Takeout for Google Keep should be supported too.

      Thanks for the suggestions!

  • Squizzy@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 days ago

    Disclaimer, I am idiot with no time.

    I know Joplin exists but I havent got around to setting it up.

    Would you look a developing a shared notes app, Wanderlist used to be great before microsoft for Shopping lists.

  • sugar_in_your_tea@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    7 days ago

    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.

    • bruce965@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      5 days ago

      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

      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 events 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
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 days ago

        What do you mean by “separately be able to clear completed tasks”?

        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.

        Basically it’s the same things as text notes, just with a bit more formatting options.

        It has a lot more formatting options:

        • positionable images, w/ text flow options
        • drawings
        • tables and charts
        • print settings, like margins, header/footer, etc

        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.

        there must always be a protocol behind it

        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.

        What’s the difference between chat and data?

        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.

        the user X is currently typing

        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.

    • aksdb@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      7 days ago

      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.

      • sugar_in_your_tea@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 days ago

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

  • Moonrise2473@feddit.it
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 days ago

    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 😊

    • bruce965@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 days ago

      E2EE because I wish for a software that you don’t need to self-host. We here on the Lemmy Selfhosted community are lucky to have the skill to do it, but I want other less tech-savvy users to also be able to use this service without having to trust a third-party.

      It makes backups much more complicated

      You have a point, but if the server acts just as a blind relay to facilitate synchronization, you just need to run this app on a couple of your devices and you have a distributed backup you don’t even need to think about. A copy of all the synchronized documents is stored on your device(s), and it should ideally be exportable at any time, so I would say you don’t need to also have a backup on the server. If you happen to lose all of your devices, you can just add a new one and in a few minutes the server will send you a copy of your data. I would say that makes it unnecessary to keep a plain-text backup on the server, what do you think?

      EDIT: I didn’t want to burden users with a choice of E2EE vs plain-text, but that would be doable I guess. If I end up adopting Matrix, E2EE is optional.

  • Willdrick@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 days ago

    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)

    • bruce965@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 days ago

      start by scouting around and see if you can adapt FOSS apps

      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!

      • Willdrick@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        6 days ago

        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!

        • bruce965@lemmy.mlOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 days ago

          Okay, I get it now :P

          DXVK was born from a Nier Automata player Linux enthusiast? That’s cool! I never checked, I assumed it was build by some big company like Valve or something. Kudos to Philip Rebohle!

  • LarmyOfLone@lemm.ee
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 days ago

    I recently thought about what I’m missing, and came up with something rather complicated (sorry, nothing simple haha)

    Basically I’m often compiling information in markdown text files. But images are still web hosted. Sometimes I use spreadsheets and wish I could do simple additions in markdown tables. Or I use bookmarks, but know websites will go down and wish I could just “backup” any website in a compact file and organize it without mucking around with files. Zotero does this partly. I also use “SingleFile” to save websites but it would be nice if it was something semi-compatible to web-archive. Or maybe just save a stripped down version of an article like you see in “reader view” on Firefox. And of course usable in both desktop and mobile.

    I do think Project Jupyter does something like this and there are also other note taking apps.

    Overall the state of computer science in 2025 is still deplorable. The very basics of storing data still don’t have good solutions.