I’d like to sync my markdown notes between devices (laptop and phone), which service is better: Nextcloud or Syncthing? Any other important idea I should know?, like latency times, or maximum number of synced devices, what if I edit the same note from both places without internet and then both get connected to a network… For example, I know Nextcloud let me have a history of the notes.
Git
Then git pull rebase and commit. Done
Does not have great UX on phones though.
I made some Termux shortcut scripts in bash for it. Works well, but not for everybody ;)
Never had merge conflicts I take it 😄
My phone script is quite simple, and I set it up on cron, so I don’t get out of state very often. I handle if there could be conflicts via script on my Linux pc with stash and pull etc. Automated cron also
Yeah, and for that reason, I opted for syncthing instead of Git for this use case.
I’ve not needed to deal with a conflict, it’s automated.
But what’s the latency with syncthing or its instant?
Syncthing uses inotify to watch for changes, so it’s pretty much instant
Syncthing is fantastic… once you get it set up.
First, the rough stuff. Syncthing is not user friendly to set up and use. If you want to sync something, you have to go to every device you want to share with and enable the share… for every folder. You can get through this by doing the Dropbox method of just sharing a single folder, but that will have it’s own challenges if you want to only share certain files with certain devices or apply different versioning methodologies. All in all, it can get cumbersome.
Secondly, it’s a dumb sync tool, meaning that it’s not content aware. In your “editing the same note” example, Syncthing will fail. You’ll get a conflict notification and be prompted to to pick which version is correct… and even that will be buried in Syncthing’s interface that you’ll have to go looking for. That specific scenario isn’t what it was designed for.
Lastly, Syncthing will occasionally get hung up on syncing a file and clearing the error isn’t straight forward.
Alright now for the good stuff. Once you get through all the above stuff, it just works. I throw it on every computer, phone and tablet I own, and I get (mostly) worry-free backups of all my important files synced to my NAS. And it has saved me MANY times.
There are multiple versioning methods, so you can be sure that if you accidentally delete something, it’ll be there for you. You can set it to encrypt files on specific destinations, so if you wanted to sync to a VPC, you can ensure your folders are protected from prying eyes. You can exclude files, so those annoying .DS_Store files that macOS throws around don’t end up on your other devices.
I use it to backup my Obsidian vault, but I don’t use it to sync my vault to other computers. I pay for Obsidian Sync for that.
best description I have ever read of syncthing. they should put this in their readme or about page. describes the pros & cons in an honest way. I’ve had all the problems you describe and will probably have them again in the future, be confounded, be frustrated.
I get (mostly) worry-free backups
except this; it’s sync not back up. ;) but it is very backup-like and in some situations does the job as well or better than backups
I <3 syncthing nevertheless
Sync isn’t backup, but proper versioning can be a very simple backup.
Don’t take my opinion for notes, I don’t use any of the notes features. However, I can say Nextcloud is just a pain to maintain, even their docker containers. It’s bulky, it’s weirdly built, you’re constantly modifying php config files. So, that may weigh in on your decision.
I have the exact opposite experience but I use their snap which has been updating itself without a single problems or me needing to change any config file for the last 4 years or something. I never need to do anything, so for me the maintenance is the best part of Nextcloud.
I hate that its web frontend is so mega slow that it takes 8 seconds just to log in.
I still use it for calendar, documents, address book and specifically notes too, but I only use external apps for that not the web frontend and the apps on the PC and mobile phone are nice and fast.
I use Syncthing for synchronizing my password manager database. And there the maintainance is also very easy, it updates itself with the system and runs in the background without me ever needing to go to the webfrontend.
I’d say if it’s only for one thing, then I’d go with Synthing, because it does not need a server. If I’d use more features especially calendar and address book and perhaps even to share documents with other people then I’d go with Nextcloud.
I guess for me it’s mostly docker related. My number one annoyance is that it goes against docker convention to have configs be persisted, or really much of anything be persisted if it can be helped. I just migrated mine and configs belong in environment variables, and it took me a long time to realize that those configs aren’t updated if the docker’s environment variables are updated. That took me way too long to realize. So it’s functional, but doesn’t follow best practices. I guess I’m just a bit salty that I lost quite a few hours on it
My number one annoyance is that it goes against docker convention to have configs be persisted
That’s not against docker conventions at all. It’s exactly what volumes are for. They even tell you which directories to mount as volumes to maintain your configuration.
Nextcloud doesn’t sync in the background iirc, but there are 3rd party apps you can use that will. It’s great other than that.
I am not sure if syncthing syncs in the background or not, but worth testing. Nextcloud is probably the more complete package but it depends on if you need or want anything of its other features.
It does. It’s configurable on a per-sync-folder basis.
Not sure why you’d use nextcloid over ST for just sync. ST takes 5 minutes to setup.
I also recommend for:
Windows - SyncTrayzor
iOS - Möbius (costs like $10, but can do background sync)
Android - Syncthing-Fork, it moves most of the sync conditions to within each sync folder/job, for more granular control.
Nice thing about ST is its not server-based. It’s machine to machine. That is, you don’t setup a server first, you just install ST and send your device id to another machine and they connect.
I keep hundreds of gigs synced between several computers and several phones. It’s become pretty messy, because I was lazy.
But it rarely has an issue, and it’s pretty good at telling you what the issue is. The desktop version is a little easier to handle errors than mobile, but that’s mostly because mobile client is simpler.
But within the mobile client there’s an option to switch to the web client view which is much more detailed. I only have to use that once or twice a year, and usually because I’ve done something like reset a phone so a share doesn’t see that phone anymore and is confused.
Syncthing has been much more reliable for me. It syncs extremely fast, picks up changes nearly instantly, and just works so well I never really even think about it.
Nextcloud has caused outright data loss once for me (all of my data was corrupted by nextcloud and then synced to my devices, had to completely recover from a backup), and broken due to updates several other times. It’s overall very slow, and a pain to maintain through updates.
what if I edit the same note from both places without internet and then both get connected to a network…
Syncthing will handle duplicates by renaming the older copy, and also has modes for versioning and deleted file recovery that you can enable and customized how you want to.
Since I use obsidian.md I installed a community plugin to sync to onedrive.
For other stuff I use syncthing.
I’ve never used syncthing, but nextcloud has become a major part of my life in part because of the notes app, which I use for my work log, as well as nextcloud news, which lets me read news from any device and which articles I’ve read are tracked so my news feed is actually news. A third thing that’s neat is I keep my windows user folders in my nextcloud folder so my computers have the same synchronized user folders – if I download a file on my main PC it shows up on my travel laptop and vice versa, and if windows crashes I don’t lose the files in my user folders, I just resync.
Logseq and syncthing
I use these for both work and personal life - and you can edit on multiple devices…
Now, the caveat there is, it’s not entirely realtime editing …
logseq updates the display when the underlying markdown file changes, so you can edit on multiple devices if you let them sync which takes a second or so (setup that syncthing folder to watch the filesystem, instead of periodic)
So, I edit a note on my phone, walk ovee to a laptop then see the changes come in and edit some more… pick up the phone, unlock it, probably ready to edit again…
If I leave the house, syncthing could sync over the internet, but I’ve not aet that up… so in the unlikely chance that someone edits the file(s) on my laptop AND I edit on my phone, then syncthing would give me 2 files which others have explained well.
BeyondCompare or meld or… vim… can do simple comparisons in these cases.
Been doing this for a while…Just my 2p
I use syncthing for personal and work, and it’s great. Having said that I’ve found it struggles with versioning i.e. editing a document from multiple devices.
Look into something like Standard Notes for cross platform markdown editing. It’s e2e encrypted, works great, the dev is very responsive. Ymmv but I really like it, have it on every device I own and use it daily.
I’ve also just used a private git repo for editing docs from multiple devices. Once you get it set up it’s effortless, and most ide’s are extremely fun to use as text editors.