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.
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.