Comment by simonask
7 months ago
I've been interested in Org Mode before, but the thing that always kills it for me is a good synchronization solution. Does anyone have any tips?
I regularly access and update my notes on at least 5 different devices, and I often need to share notes with non-technical people, where the barrier of entry needs to be nothing more than a single link they can click. Currently, Google Docs serves that need, but it's not ideal for writing.
The ideal solution for me would support using a Git service as the backing store, but the churn of making commits to synchronize has to not get in the way.
Org-mobile exists[0], but I have yet to meet anyone actually using this protocol in the wild, and requires you to have your own server to mediate from, as well as emacs running on your phone.
An alternative is to use Git(hub) as the mediator, and here Orgzly is a decent Android app with Git support[1]. It just has a tendency of clobbering your git log with automatically generated commit messages. It has WebDav capabilities too, so you could use Nextcloud as the mediator instead.
There's also Syncthing, which is probably what everyone wants: all devices haves the same info, you commit to VC what you want when you want.
My personal workflow? Accept that my desktop is where I do the real planning, and that the mobile is just for quickly looking up stuff in my notes. If I have ideas, I can email them to myself and process them later when I'm back on my desktop. Is it perfect? Far from it. Does it work? yes.
0: https://orgmode.org/manual/Org-Mobile.html
1: https://github.com/orgzly/orgzly-android/pull/1037
I use org-mobile to sync w/ beorg[0] using iCloud sync. Between desktop and laptop I use git commits which works fine for me because I wan't the commit history anyway. I can imagine that git would cause unwanted friction if the goal was just syncing.
[0] https://www.beorgapp.com
I just use syncthing, with https://f-droid.org/en/packages/com.github.catfriend1.syncth... on Android and the official packages on desktop. On Android, I've been using the organice build from https://github.com/200ok-ch/organice/issues/932# but have also installed https://orgro.org/ which is nicer for reading and simple edits. I've heard https://apps.apple.com/gb/app/synctrain/id6553985316?platfor... is nice for ios
I also use Syncthing. It's still not as clean as self-contained apps like Google Docs—sometimes there is a bit of a delay with the syncing that creates a conflict and I have to resolve it manually. But it works well enough.
Post author here. I'm not sure there is any one sync solution. To share with others, org-export and/or `pandoc -f org -t html` may be your friends. Also Github renders a subset org-mode text. What it can render may be good enough for your needs.
Alternatively: how about something like this:
- Stick the org source files in a private <Syncthing, or Dropbox, or equivalent> folder, so you can privately sync across devices.
- Use a file watcher to auto-export selected files to a shared version of the folder so you can share rendered content with others, with permissions. pandoc is an option but it doesn't export all of org. I think it's not a crazy idea to use Emacs itself as your command-line exporter. If you want special org sauce in the export, maybe pass the command line invocation a dedicated init file for export-only use.
- Further, because you are familiar with git, it may be not-crazy to run a Github/Gitlab/daemonised "render" action, on push to a remote repo. Once again, using the Emacs binary as the full-blown exporter.
Tailscale, ssh and emacsclient in terminal mode makes it pretty easy to access and update notes from different machines without syncing by just say leaving your main laptop on and connected to the Internet and using emacs daemon. If you have sshd running on all the machines you can use tramp to move files around or use git or many other tools. The trickier part is using emacs key bindings on say android. Read only sharing with PDFs works fine. Co editing is impossible :).
I just use git (manually committing) with GitLab, their web previews of org files are mostly good enough.
I also have another set of notes that I sync with my phone and laptop via Syncthing, but that stuff isn't really using the more interesting org features, just quick and dirty notes. For anything serious it's just git.
I run single script that does a commit, pull and merge without pulling open the editor. It takes a couple of seconds and works fine.
Sure, but that's not really a great/feasible/possible workflow on mobile.
It is. I run a very similar script on termux, triggered via termux widget on my home screen.
syncthing for all my org files