CardDAV synchronization for Proton Mail desktop client
Proton Mail comes with great features like an address book (Contacts) within Proton Mail and Proton Calendar.
However, due to the privacy nature of zero knowledge (encryption), Proton cannot offer a way to provide their own CardDAV endpoint without either storing the (encrypted) secret/encryption key in their database (bad) or relying on the client to submit the secret/encryption key in every request (very bad).
I use a Nextcloud service to synchronize my contacts and appointments via CardDAV and CalDAV across several endpoint device classes. For example my dedicated VoIP phones, routers with VoIP servers inside, smartphones, and email clients.
On the smartphone there is no issue, because the Proton Mail mobile client offers a combined address book (contacts). While there is no synchronization between the Proton contacts and the smartphone contacts, the mobile app can access both.
The issue comes when using the desktop client or the web client. Here there is no combined address book (contacts). Only the Proton-native contacts are known. I can solve this via exporting my main address book as an VCard and import them in to Proton Mail contacts, but this also raises issues (mainly duplicates, and excessive personal efforts which could be used better).
My solution to the issue: Allow the Proton Mail desktop client to subscribe to an CardDAV endpoint and synchronize this endpoint (both directions) with the Proton Mail native address book (contacts).
Proton Mail desktop client should not provide an CardDAV endpoint, but consume/subscribe to an external CardDAV endpoint.
This way, I do not waste my time in manual synchronization and deduplication.
