Taking Plugin-Free Development to Extremes

I kept discovering more that could be done with macros and queries to the point where my config.edn was getting a little out of hand. Together with my newfound love for Clojure (and my longer time experience with Python), I’ve been working on a system to help wrangle this madness.

Let me introduce Logseq Modules, a way to manage a set of complex macros, queries, transforms, views as separate sets of files. Using a Python script, these then “compile” down into config.edn and custom.css. No plugins in sight (which means it works on mobile!).

I’m not 100% sure about the naming of some things (always a tricky thing). I’m also not sure if folks will find running a Python script a barrier to entry. I look forward to hearing what others think. Either way, I get a huge amount of sanity saving out of this every day myself, so I thought it was a good time to share!

  • If it was only Python, could be manageable. But now it is:
    • Python plus Clojure plus Datalog
    • on top of CSS plus EDN
    • and more (special formats for macros, templates etc.)
  • Is this a barrier to entry?
    • More like a whole obstacle-course racing.
  • In my opinion, a platform like Logseq should be able to:
    • handle all these things directly within its own outliner
      • without switching interfaces and without restarting
    • provide import/export from/to other formats only for interoperability
  • More points in Logseq for code management