org-roam-server icon indicating copy to clipboard operation
org-roam-server copied to clipboard

State of Org-roam v2 support

Open jethrokuan opened this issue 3 years ago • 37 comments

Before I release Org-roam v2, I'd like at least basic compatibility with org-roam-server. Ideally, both packages should upgrade at the same time so MELPA upgrades aren't catastrophic. When org-roam-server is ready, I can coordinate the upgrades of the "officially-supported" extensions to v2.

jethrokuan avatar Jun 28 '21 05:06 jethrokuan

Hey,

I am not sure. It looks more complicated than I expected. Everything has been changed. It seems everything is done with node instead of file and a lot of functions I used are now depracted. I am really busy with masters, job, research, other projects etc. It is really awesome that you can still keep up!! Last year, I was devoting my free time to this project but this year I want to keep it to myself :)

Currently, I think org-roam-server works pretty well for org-roam v1 without any issues and most of the Issues are feature requests.

If anyone wants to migrate org-roam-server to v2 that knows how org-roam v2 works that would be awesome.

goktug97 avatar Jun 29 '21 13:06 goktug97

@goktug97 I just saw this message, and I just want to say that I empathize. I am amazed by what you, @jethrokuan and others do for a large community of users. As a person who values (and has benefited from) what org-roam-server and org-roam provide to my workflow, I want to say that I completely understand your situation and wish you best in your prioritization of your research and education. Good luck!

midas0441 avatar Jun 30 '21 11:06 midas0441

Hey, I am not sure. It looks more complicated than I expected. Everything has been changed. It seems everything is done with node instead of file and a lot of functions I used are now depracted. I am really busy with masters, job, research, other projects etc. It is really awesome that you can still keep up!! Last year, I was devoting my free time to this project but this year I want to keep it to myself :)

@goktug97 Gotcha. I totally understand, thanks for all the effort you've put in on this project. Since this is one of the more popular extensions, I'll personally perform the migration of this project, but only after v2 is actually merged into master, so there will be a period of time where org-roam-server won't be functional. I took a brief look at what needs to be done, and there's really quite a bit. I might also have to strip things down, like I did with Org-roam itself.

All the best :)

jethrokuan avatar Jun 30 '21 13:06 jethrokuan

Thank you, @jethrokuan. Truly, above and beyond!

midas0441 avatar Jun 30 '21 14:06 midas0441

Awesome! This was my first project with Javascript or web design in general and I had 0 experience with Javascript. I just had this idea and wanted to implement it, so the code is a little bit mess. There is a lot of room for improvement. Good luck!

goktug97 avatar Jun 30 '21 20:06 goktug97

I've been using Org Roam v2 for some weeks, but I've never used v1 and, therefore, org-roam-server.

Even before discovering org-roam-server, I had an idea that "I should totally draw a graph of my nodes". That's how I ended up here, also having read the whole thread and studied the code.

I wanted to contribute, but apparently, I'm a very bad Elisp hacker. I can understand most of the code, but trying to write something on my own feels like when you try to draw on paper for the first time in your life: fun but ugly.

However, I have 7 years of experience with Web. I've built and scaled numerous apps, and I feel very confident at working with Next.js, Typescript, etc. I also work with HTTP servers and SQL queries every day.

I've been thinking about building my own version of org-roam-server that's Typescript-heavy and Elisp-light (due to my incompetence) and eventually sharing it with the folks. It would only support v2.

Do you guys have any thoughts? Are there reasons to not do it? Or maybe I could use my strong side elsewhere with greater leverage?

If anyone feels like it makes sense, I'd be happy to pair up with somebody who'd do the Emacs side of things.

And @jethrokuan @goktug97 thank you for every second spent working on org-roam and org-roam-server. :heart: :heart: :heart: These projects, along with Orgmode itself, are my best discoveries when it comes to personal tooling.

kirillrogovoy avatar Jul 15 '21 13:07 kirillrogovoy

@kirillrogovoy some of us had same idea, you can follow discussions at https://github.com/smallstepman/org-roam-server/discussions to see where we at :)

smallstepman avatar Jul 15 '21 13:07 smallstepman

@jethrokuan we'd like to move development and discussion here... can you please give my account permission to create new branches and push commits to this repo? would you also please enable github discussion in the repo settings?

smallstepman avatar Jul 15 '21 13:07 smallstepman

Sure, I'll add those involved into the Org-roam-server team.

jethrokuan avatar Jul 15 '21 13:07 jethrokuan

@kirillrogovoy some of us had same idea, you can follow discussions at https://github.com/smallstepman/org-roam-server/discussions to see where we at :)

Wow, that's awesome!

I've hopped through the discussions. Looks like you guys are looking for the same outcome as I do.

I'd love to join and be useful! I'll try chiming into the discussions and not flooding this issue.

kirillrogovoy avatar Jul 15 '21 13:07 kirillrogovoy

Thanks, I'm in :) Can we also have GitHub discussions enabled for this repo?

smallstepman avatar Jul 15 '21 15:07 smallstepman

I created another (currently private) repo for your usage, feel free to do whatever you want with it.

jethrokuan avatar Jul 15 '21 19:07 jethrokuan

Thank you! I have been added to org-roam-server but not yet to this unknown private repo, could you add me there as well? Thank you so much!

tefkah avatar Jul 15 '21 21:07 tefkah

I think you need to invite us there Jethro, cause I too can't see it edit: also add @kirillrogovoy

smallstepman avatar Jul 15 '21 21:07 smallstepman

Strange, I not sure where I added you guys before, but now you should've all received an invite to the team, which lets you see the repo. @smallstepman @ThomasFKJorna @kirillrogovoy

jethrokuan avatar Jul 16 '21 03:07 jethrokuan

I can confirm I can see and interact with the repo, thanks!! (after accepting the invitation in my Email)

kirillrogovoy avatar Jul 16 '21 04:07 kirillrogovoy

I'm going to cite our conversation here: https://github.com/smallstepman/org-roam-server/discussions/3#discussioncomment-1013416

TLDR: I, @ThomasFKJorna, and possibly @smallstepman are starting the work on a new app that's supposed to supersede https://github.com/org-roam/org-roam-server in the future.

We will only support org-roam v2 and there's no guarantee about having that app have everything that org-roam-server has.

We'll share it separately once we lay down the foundation.

kirillrogovoy avatar Jul 16 '21 14:07 kirillrogovoy

@kirillrogovoy I'd be interested to help once things get rolling.

pschorf avatar Jul 19 '21 20:07 pschorf

I don't want to sound like a pompous prick since I'm not offering anything definable (sorry, at the current point of my life, I don't think I can open up some bandwidth for [yet another] project).

However, I guess it's not such a big crime to share my two cents on the matter of rebuilding org-roam-server.

I think it would be nice if you folks considered re-writing it in Clojurescript. I don't mean to start a colossal flamewar (and start arguing about cons and pros), but since the back-end (if we can consider Org-roam as the back-end to Org-roam-server) is written in Lisp, I think it simply would make sense to try to keep at least some consistency.

And the only "production-ready" Lisp dialect usable for front-end web apps today is Clojurescript.

If you ever consider my argument as, at the very least rational, I could maybe help with the basic skeleton for the project. Also, Clojurescript is not that difficult to learn, even though, I admit, it does require some learning (just like any other tool).

agzam avatar Jul 20 '21 01:07 agzam

I think it would be nice if you folks considered re-writing it in Clojurescript. I don't mean to start a colossal flamewar (and start arguing about cons and pros), but since the back-end (if we can consider Org-roam as the back-end to Org-roam-server) is written in Lisp, I think it simply would make sense to try to keep at least some consistency.

Hey Ag,

Thanks for chiming in! No worries, we all mean good here. :wink:

As much as we'd love to fiddle with a new programming language, the main risk right now is not finishing anything tangible even with the technology we know the best (because life 😅).

Also, whatever tech we end up using, we need at least one very active member who's an expert at that tech. (None of us are experts at Clojurescript, but I had a ton of experience with Typescript and React).

Last, we are making the project for the community and we want to enable as many people as possible to contribute or just tweak and hack the app for their own needs.

Hence, we are using arguably the most popular Web-dev stack of 2021 that we do have some expertise at.

kirillrogovoy avatar Jul 20 '21 05:07 kirillrogovoy

I'd be interested to help once things get rolling.

@pschorf Sure thing! I'll make sure to let people here know when we roll out the "v0" — Just watch this issue.

We are keeping it private on purpose to not have an uncontrollable inflow of PRs and/or issues without much direction, but once it's out, everybody's help is welcome!

kirillrogovoy avatar Jul 20 '21 05:07 kirillrogovoy

@agzam As @kirillrogovoy said, we don't really have any experience with ClojureScript and would like to get a working version out as soon as possible, both for people wanting an org-roam-server replacement and our own time :p

Another reason for using react is that we want to use a graphing library that is extremely easy to use, namely react-force-graph. Force-graph can also be implemented with ClojureScript of course (I got the idea from LogSeq, who do use ClojureScript) but without someone somewhat competent at ClojureScript it would eat up a lot more of our time trying to figure out how to make the two click (LogSeq's graph isn't the best example to work off of).

I do really like the idea though, it got brought up in our discussion at some point as well, but at the moment I don't think we will switch, sorry!

tefkah avatar Jul 20 '21 08:07 tefkah

Here's a little teaser to whet your appetite a little Note that we are in the process of simplifying things massively, not the final product yadayada

https://user-images.githubusercontent.com/21983833/126295409-bc5c5f11-1ddb-47de-be1f-28a1e3140054.mp4

tefkah avatar Jul 20 '21 09:07 tefkah

The teaser is perfect. I'm so much triggered. How many nodes do you think it will be able to handle smoothly? I have near 10k nodes, and it will only grow faster. I expect many other users would have similar issues too.

EDIT My machine had a hard time running react-force-graph's large graph example. It still works, but the latency is quite noticeable.

jcguu95 avatar Jul 20 '21 11:07 jcguu95

The above graph is my personal knowledge base and has around 1k nodes atm.

2D version should be fine for larger graphs, see this example with 75k nodes (warning: s l o w ): https://vasturiano.github.io/force-graph/example/large-graph/

3D graph is more tricky, see here one with 4k nodes: https://vasturiano.github.io/3d-force-graph/example/large-graph/

In general however, graphs can be very performant with the right settings, and we to provide a good way to interface with them (see the sliders). With that, even very large networks are fine once they stabilize the experience is rather smooth regardless. Some options are inherently slow (highlighting the nodes on hover for instance), but again, should be mostly fine once the graph has been stabilized.

EDIT: to your edit: that graph also has one of the more perfomance sapping features enabled, namely particles travelling the links indicating their direction. That alone makes a huge difference, as without it nothing needs to be rerendered every frame, and panning should be smooth.

tefkah avatar Jul 20 '21 11:07 tefkah

(I love how your "large graph" expands from a ball of mess to a nicely structured sheet!)

Seems that this is the best tool we have to visualize our knowledge network. I'm sold! Please also let me know if helps are needed! Look forward to it. Thank you :smile:

jcguu95 avatar Jul 20 '21 11:07 jcguu95

Also came here to say, this is very exciting, thanks so much for the work on this. Eager and happy to help with testing etc!

anthonyfinch avatar Jul 20 '21 23:07 anthonyfinch

I am so looking forward to this!

thriveth avatar Jul 20 '21 23:07 thriveth

3D graph is more tricky, see here one with 4k nodes: https://vasturiano.github.io/3d-force-graph/example/large-graph/

I hope one can customize the controls. E.g., I use dragging with my right mouse button for mouse gestures, so this likely conflicts with it.

hjudt avatar Jul 22 '21 12:07 hjudt

I am looking forward to testing the new server. It looks stunning!

maikol-solis avatar Jul 26 '21 11:07 maikol-solis