Hey everyone, I’m trying to replace most of the private owned app I use by FOSS ones, and today i’m pointing at notion.

I just use it as a way to organize my notes and use it both on my laptop and phone, and i’m looking for something that can have that fonctionnality.

I’ve already looked into a bunch of foss note taking apps but I didn’t see any that could do it. (maybe i didn’t look hard enough tho)

I’m willing to use syncthing or smth similar if needed.

do you have any recommendations? anyway, have a nice day and thanks to everyone making the internet/softwares more libre and accessible!

  • clif@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    23 hours ago

    https://silverbullet.md/

    It’s like obsidian (I hear) but FOSS. I love it and it’s by far the self hosted service I use most.

    It stores your notes in a plain directory hierarchy of markdown files so you can just point a cron shell script at it to git add/commit/push at your desired internal and you’ve got history tracking/backups too

    Edit: also provides a PWA so you can “install” it on your phone instead of always using a full browser.

    Edit x2: includes a Lua interpreter so you can get scripty with it. I use that functionality more than I expected and I suck at Lua

    Edit x3: and it auto synchs to each device when open with conflict detection. Full copy is stored local to each device, synched when possible

    • [object Object]@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      10 hours ago

      includes a Lua interpreter so you can get scripty with it

      Any examples of what you’re doing with scripts? I use some custom programming in Org-mode in Emacs, but curious about what other people are doing in different apps.

      • clif@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        3 hours ago

        The two biggest things I use it for are programmatically generating “lists of lists” (lists of pages, more accurately) and as a semi-hacky way to get text colors. Semi-related, the “Treeview” plugin gives you a folder hierarchy panel off to the left (by default) which is really, really nice.

        I should probably clarify that I didn’t write these, I stole them from the Silverbullet community forums… also I should reiterate that I suck at Lua so take my explanations with a grain of “this person may not know what they’re talking about” ; )

        Lists of Lists : I have a bad memory so I create a LOT of lists. I even have a base page named “Lists” that I then nest different types of lists under (TODOs for home, for work, for school, for projects, for selfhosting, etc). Since the table is programmatically generated, it’s always up to date on each load. This first snippet relies on using frontmatter on the respective pages along with the tags property.

        ${query[[
        from index.tag "todolist"
        order by lastModified desc
        select {
          List="[[" .. _.name .. "]]",
          Modified=_.lastModified
          }
        ]]}
        

        This retrieves all pages from the space index with a tag of todolist (from the frontmatter), orders them by lastModified, descending, and renders a table that contains the name and lastModified date. This is excellent for providing a list of pages (based on tag, todolist in this case) related to a topic and ordering them by the last time they were changed. I use this in the base page for pretty much all of my “folders”. Screenshot :

        Text Color Hack : Since the Silverbullet markdown interpreter doesn’t (currently) support plain HTML, and the way we usually color specific areas of text within Markdown is <span style="color: #fff">white text</span>, they had to get inventive. Somebody came up with a way to provide Lua functions that will accept text as a parameter and then render it with the specified HTML color/style.

        In my CONFIG page (that is applied to the entire space) I included a space-lua code block like :

        function Red(text)
          return widget.html(dom.span {
            style="color:#e60000; font-weight: bold;",
            text
          })
        end
        // Also about 5 more for different colors I use, snipped for simplicity.
        

        Then, anywhere in my Silverbullet space I can use a Lua code snippet like The following word is ${Red("red")} and it will invoke the space-lua function named Red() on the text red, apply the styling, and render it with CSS color #e60000. Hacky? Yeah… but it works for now. Screenshot :

        … I’ve been meaning to build a generic Colorize(text, hexColor) function (which would likely take all of 30 seconds : ) but haven’t yet. Maybe tonight.

        EDIT: That did, in fact, take 30 seconds. Function :

        // This assumes "color" parameter is a valid/properly formatted CSS color, meaning a known word ("red"), hex ("#ff0000"), or presumably RGB/etc but so far I've only tested color names and hex (I typically use hex)
        function Colorize(text, color)
        return widget.html(dom.span {
            style=string.format("color:%s; font-weight: bold;", color),
            text
          })
        end
        

        Usage : ${Colorize("any text", "#00ff00")}

    • frischkaesbagett@feddit.org
      link
      fedilink
      arrow-up
      3
      ·
      20 hours ago

      Lol

      I just researched PWAs with this article.

      PWAs aren’t a silver bullet, but when applied in the right contexts, they continue to offer undeniable benefits

      Now you are telling me silverbullet(.md)

      provides a PWA

      • clif@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        19 hours ago

        Hehe. So PWAs aren’t a silver bullet but Silverbullet can be a PWA.

        Is that one of those “all squares are rectangles but not all rectangles are squares” type things?