If you are feeling ambitious and want to go “serverless”, try out DecSync and a compatible android app for contact sync. This represents all your contacts as files on disk in a way that avoids conflicts, and you can use SyncThing to keep your devices in sync 100% peer to peer. Unfortunately on your desktop you’ll probably have to use something like radicale on localhost and the plugin to convert it into CardDAV for your regular email client to understand.
If you are feeling ambitious and want to go “serverless”, try out DecSync and a compatible android app for contact sync. This represents all your contacts as files on disk in a way that avoids conflicts, and you can use SyncThing to keep your devices in sync 100% peer to peer. Unfortunately on your desktop you’ll probably have to use something like radicale on localhost and the plugin to convert it into CardDAV for your regular email client to understand.