Sync can also be self hosted.
I really really really hate it for almost 10 years. There was a project rewritting it in go but was abandoned and probably the next thing I will develop will be a replacement .
Forgive me, but it sounds like you just want to be unhappy about the distribution, because that solves your problem pretty well.
is there a documented API? how much does it really take to sync? if it's browser encrypted it would really be just login, push or pull a blob. how hard can that be?