Professional C# .NET developer, React and TypeScript hobbyist, proud Linux user, Godot enthusiast!

https://blog.fabioiotti.com/\ https://github.com/bruce965

  • 1 Post
  • 16 Comments
Joined 3 years ago
cake
Cake day: March 9th, 2022

help-circle
  • 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!


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


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



  • 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!



  • Oh yeah, I used Joplin in the past. Although the goals are quite different from my idea. Joplin is a great recommendation as an alternative to Google Keep, but it’s not real-time collaborative (or federated, for what it matters).

    create drawings

    Ah, I don’t remember this option. Maybe it wasn’t available when I tried it last time a few years ago. I guess that means Joplin is still being actively developed.

    I would also look into collaborating with the people […] Not sure if that will work, but it’s worth a shot if you’re interested

    Oh! I just noticed that they have quite a few things besides Docs. I mean… I probably should. My goal is for something much smaller, I just want a replacement for Google Keep, and some day in the near future, SplitWise. Joplin sounds like a better candidate than Numerique.

    Thanks for pushing to collaborate, I realize that would actually make more sense than starting a new project from scratch. Not without guilt, I have to admit that I code for fun, and I have more fun working on something that works exactly as I envision it rather than just joining another project. Someday I might learn how to make some real contributions to existing software, but I don’t think this idea of making a simple replacement for Google Keep will be my trampoline to working this way. Still, thank you for trying to push me to do it!


  • Oh yeah, both Joplin and NextCloud are great. I tried them both in the past. NextCloud is a bit bloated in my opinion though, I was hoping to go for something simpler both to install and to use.

    Most of us here on the Lemmy Selfhosted community are skilled enough to keep a computer running somewhere, expose it securely on the internet (or just LAN, if that’s good enough), and install their own services such as Joplin and NextCloud, but my goal would be to make something that you don’t need to self-host. If you can trust any server, you don’t need to host your own. I like the idea of building a network comprised of both self-hosting users, and “normal” users, like here on Lemmy.

    The federation may leave you wanting more and the collaboration might not be “real time” enough for you either, though. If you can build something better by all means go for it.

    I’m not sure I understand what you mean. Do you mean writing a protocol that supports federation is a very difficult thing to do? Actually my first draft didn’t include federation as that’s just too much for my skills. But I am considering adopting Matrix, and Matrix includes federation, so why not? They built real-time messaging with Matrix, so I would assume that should be real-time enough for document editing.


  • 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!




  • 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!





  • Fair enough, but then it’s the same thing as open-sourcing the code but not providing support nor binaries.

    I mean, personally I also prefer it to FUTO’s proprietary license, that’s for sure. But I’m one of the few privileged users who can build from source.

    If this license doesn’t impose any extra restrictions on the code (and as you say, anyone can fork and provide prebuilt binaries), then this would just increase the risk of spreading malware, with no real benefits for the original developers.

    In my opinion, if you want to monetize your software without going proprietary, all you have to do is provide the users a convenient way to get it. There are some paid FOSS apps on Google Play, as well as some paid FOSS games on Steam. You don’t want to distribute binaries? Fine, okay, that’s alright and I respect your choice. You don’t want to provide support to non-paying users? Fine, that’s very reasonable in my opinion. But…

    …do you want to impose extra restrictions on your code? Fine to me, but then you are no longer doing open source, don’t try to pretend you are. And if you are not imposing any restrictions on the code then you are imho just going to hurt small users. We shouldn’t fight small users imho, we should fight the big corporations exploiting FOSS code for their proprietary businesses. But if there are no extra restrictions on the code, then big corporations wouldn’t care.

    That’s my opinion.


  • I’m not a lawyer, but this doesn’t seem to be compatible with (A)GPL licenses.

    I would say this is going to harm small users more than big corporations. As a small user I might be unable to build from sources myself, so I would have to pay. But as a big corporation building from source would be something I can certainly do trivially, then I wouldn’t be subject to the restrictions imposed by this license.

    Imho, if someone wants to force their users to pay, then they are not doing open source. Please let’s not try to pretend we are by adopting a OSI-approved license and slapping extra restrictions on top of it.

    Just go AGPL for datacenter-oriented softwares, or GPL for drivers and embeddable code, or a proprietary license such as FUTO’s for end-user software.