unsubbed.co

EteSync

EteSync lets you run secure syncing for contacts, calendars, tasks, and notes entirely on your own server.

End-to-end encrypted contacts, calendar, and task sync — honestly reviewed. No marketing fluff, just what you get when you refuse to hand your data to Google.

TL;DR

  • What it is: Self-hosted, end-to-end encrypted sync server for contacts, calendars, tasks, and notes — a privacy-first replacement for Google Contacts and Google Calendar sync [website][1].
  • Who it’s for: Privacy-conscious individuals and founders who want to own their personal data and sync it across devices without trusting a vendor with their plaintext. Also the rare niche: people who need E2EE task sync specifically [1].
  • Cost savings: Google’s sync is “free” but you pay with plaintext data. EteSync’s hosted tier is freemium with a paid plan. Self-hosted runs on a small VPS alongside other services at near-zero marginal cost [2][website].
  • Key strength: As of this writing, likely the only open-source, self-hostable E2EE sync solution for contacts, calendars, and tasks combined — multiple reviewers note there is simply no competition in the encrypted category [1].
  • Key weakness: Development appears to have slowed significantly since 2021 — the blog stopped, the CLI client hasn’t been updated in over three years, and iOS reliability is consistently flagged as a pain point [1][4].

What is EteSync

EteSync is a sync server for your personal information: contacts (CardDAV), calendars (CalDAV), tasks, and notes. The core value proposition is that data is encrypted on your device before it ever hits the server, so neither the vendor nor anyone with server access can read your contacts or calendar events. The company calls this “zero-knowledge end-to-end encryption” [website].

The project has an important naming detail worth clarifying upfront: the server repository is now called Etebase, which is the underlying protocol for EteSync 2.0. The user-facing brand remains EteSync. When you deploy the GitHub repo at etesync/server, you’re running the Etebase server that the EteSync apps connect to. The README is explicit: “An Etebase (EteSync 2.0) server so you can run your own” [README].

The technical stack is Python 3.7+ with Django, served via uvicorn (ASGI). Data is stored in PostgreSQL or SQLite plus a media directory for user files. The server exposes an HTTP API; client apps (Android, iOS, web, desktop DAV bridge) handle the encryption locally before sending anything over the wire [README].

The encryption model matters here. With DAVx5 or a standard Nextcloud setup, your CalDAV/CardDAV data travels encrypted in transit but sits unencrypted on the server. Anyone who can read your Nextcloud database can read your contacts. EteSync breaks that assumption: the server stores blobs it cannot decrypt [website].

As of this review, the server repository sits at 1,737 GitHub stars — a niche but dedicated following, not a mass-market project.


Why people choose it

The AlternativeTo reviews [1] are uniformly five stars and consistently land on the same point: there is no real alternative for what EteSync does specifically.

“It is the only solution for syncing tasks with E2EE I’ve found so far” — a November 2025 review that sums up the competitive position more honestly than any marketing copy [1].

“EteSync is the most secure way to host your contacts, calendars, and notes. There is currently no other end-to-end encrypted solution for syncing this data that is also open source.” — a 2021 review that still holds [1].

This is a genuinely defensible niche. If you want E2EE sync for CalDAV/CardDAV and you want to self-host it, EteSync is the project. Nextcloud can do CalDAV/CardDAV sync but doesn’t encrypt data at rest in a zero-knowledge way — the server admin (or anyone with DB access) sees your contacts. Radicale and Baïkal are lightweight CalDAV servers with no encryption layer at all. ProtonMail offers encrypted calendar and contacts, but it’s a closed-source hosted-only SaaS [2][3].

The change journal feature gets specific praise in one review: “A full history of your data is saved in an encrypted tamper-proof journal which means you can review, replay and revert any changes” [website]. That’s genuinely useful — if a sync conflict corrupts a contact or calendar entry, you can roll back, not just lose data.

The desktop DAV bridge is the other key piece. Rather than requiring you to replace your existing calendar or contacts app, EteSync ships a local daemon that speaks CalDAV/CardDAV to your existing apps (Thunderbird, Apple Calendar, etc.), translating to EteSync on the back end. You keep your workflow, you get encrypted sync [website][1].

One cross-device success story from reviews: “Lets me and my wife sync each other’s calendars from Android to iOS” — the multi-device, multi-platform use case works, with caveats on iOS [1].


Features

Core sync:

  • Contacts (CardDAV), Calendars (CalDAV), Tasks, Notes — all E2EE [website]
  • Change journal: encrypted, tamper-proof history of every change with rollback [website]
  • Works with existing apps via the Desktop DAV Bridge (CalDAV/CardDAV bridge to any local client) [website]
  • Zero-knowledge authentication — the server never sees your password in plaintext [README]

Clients available:

  • Android app (native, F-Droid available) [2]
  • iOS app (available, with reliability caveats) [1]
  • Web app [website]
  • Desktop Bridge for macOS, Windows, Linux [website]
  • CLI client (Python, GPL-3.0 — last commit over 3 years ago) [4]

Server:

  • Python 3.7+ / Django / uvicorn ASGI [README]
  • Docker deployment supported [merged profile]
  • pip/apt install paths available [merged profile]
  • SQLite (development) or PostgreSQL (production) [README]
  • Admin interface at /admin for user management [README]
  • MEDIA_ROOT for user data, separate from database [README]

What’s missing:

  • No SSO or LDAP
  • No team/org features — this is personal data sync, not a business tool
  • No REST API for external integration (the protocol is the Etebase SDK)
  • CLI client is functionally abandoned [4]

Pricing: SaaS vs self-hosted math

EteSync hosted (their SaaS):

  • Free trial available [website]
  • Freemium model — a paid tier exists for ongoing hosted use [1][2]
  • Specific current pricing not available in reviewed sources — check https://www.etesync.com directly

Self-hosted:

  • Software license: $0 (AGPL-3.0) [merged profile]
  • Server costs: can co-host on any existing VPS — the Python/Django stack is lightweight
  • A $5–6/mo Hetzner or Contabo VPS running EteSync alongside other services is realistic
  • Your time to set up and maintain

Google Contacts + Google Calendar for comparison:

  • Free, but Google reads your data and uses it for ad targeting
  • No way to audit what they actually see
  • If you close your Google account or Google decides to, your contacts are theirs to hold

Proton Calendar + Proton Contacts (E2EE alternative):

  • Free tier available; paid plans from ~$4–10/mo depending on bundle
  • Encrypted, but closed source and hosted-only — you cannot self-host Proton
  • No self-host option means you’re trusting Proton’s infrastructure long-term

The math for self-hosting EteSync isn’t about replacing a $100/mo SaaS bill. It’s about removing Google or Proton from the trust chain entirely. If you’re already running a home server or a VPS for other self-hosted tools, EteSync’s marginal cost approaches zero.


Deployment reality check

The install path is either pip or Docker [merged profile][README]. The README documents a virtualenv-based source install, which is manual but clear. Docker simplifies it. The Django admin at /admin handles user management.

What you actually need:

  • Python 3.7+ (or Docker)
  • A domain with HTTPS — the server wiki documents nginx + TLS setup [README]
  • PostgreSQL for production (SQLite works for testing, not recommended for multi-user)
  • Port forwarding or a reverse proxy if self-hosting at home

What can go sideways:

The README notes that user account creation is a two-step process: you create the user in the Django admin, then the user sets their password on first login from the app. The server uses zero-knowledge authentication, so the Django admin never sets an actual password — only whitelists the username [README]. This confuses new deployers who expect a standard “create user with password” admin form.

iOS is a recurring complaint [1]. One reviewer from 2018 noted that “making it work on any other platform than Android is very complicated for the average computer user” [1]. A 2022 review specifically flags the iOS app needing work [1]. The iOS platform’s sync restrictions (background refresh limitations) are a known frustration point for CalDAV/CardDAV apps generally, and EteSync is no exception.

The more significant concern is project activity. The website’s blog stopped in early 2021. The last published entry was January 2021. The CLI client repository hasn’t been committed to in over three years [4]. The main server repository (Etebase) continues to receive maintenance, but the frontend momentum isn’t obvious from public activity. For a tool you’re betting your contact list on, that’s worth evaluating before committing.

Realistic setup time for a technical user: 1–2 hours including nginx, TLS, and first client setup. For a non-technical founder: expect 3–5 hours or find someone to deploy it, because the Django admin user-creation flow isn’t intuitive.


Pros and Cons

Pros

  • Genuine zero-knowledge E2EE. The server cannot read your data. This is architecturally enforced, not a policy claim [website][1]. No competing open-source self-hosted sync solution offers this for CalDAV/CardDAV.
  • Fills a real gap. Multiple reviewers confirm this is the only E2EE option for tasks sync specifically [1]. If that matters to you, there is no alternative.
  • Works cross-platform. Android, iOS, macOS, Windows, Linux, web — the full matrix is covered, with the DAV bridge filling gaps for desktop apps [website][2].
  • Change journal. Encrypted tamper-proof history with rollback is a meaningful feature for contacts and calendars where accidental deletes are hard to recover [website].
  • Integrates with existing apps. The DAV bridge means you don’t replace Thunderbird or Apple Calendar — you just add an encrypted sync layer under them [website][1].
  • AGPL-3.0 open source. Server, clients, everything — auditable by anyone [website][1]. One reviewer notes: “Without the source it’s hard to trust an application is doing what it does, and if you can’t trust the application, how can you trust it with your data?” [website].
  • Lightweight server. Python/Django stack runs alongside other services on a minimal VPS without dedicated resources.

Cons

  • Project velocity is slow. Blog stopped in 2021. CLI client abandoned [4]. Whether the core server still receives active development is not clearly visible from provided sources. Evaluate current GitHub commit frequency before deploying.
  • iOS reliability. Consistently flagged across multiple reviews and years. Not a fixable config issue — iOS platform restrictions on background sync affect all CalDAV apps [1].
  • AGPL-3.0, not MIT or Apache. If you embed Etebase in a commercial product, you must open-source your modifications. Stricter than many commercial-friendly licenses [merged profile].
  • No team features. No shared contacts, no shared calendars with access controls, no org management. This is a personal data tool, not a business tool.
  • Setup requires technical confidence. The Django admin user flow, reverse proxy configuration, and TLS setup aren’t guided — you need to follow wiki pages and troubleshoot [README].
  • Small community. 1,737 stars and limited third-party reviews means community support and third-party integrations are thin compared to tools like Nextcloud [merged profile].
  • No meaningful third-party reviews. The provided sources are mostly aggregator listings and brief AlternativeTo user comments — no in-depth technical review exists in the public record, which itself reflects the tool’s niche reach.

Who should use this / who shouldn’t

Use EteSync if:

  • You want zero-knowledge E2EE for contacts and calendars and you’ve confirmed no other tool gives you this while remaining self-hostable.
  • You sync tasks between Android devices and need them encrypted — reviewers confirm this specific use case has no equivalent [1].
  • You’re already running a VPS for other self-hosted tools and want to add sync without cost.
  • You’re technically comfortable with Python/Django deployment and nginx, or have someone who is.
  • You’re a founder who explicitly needs to remove Google from your contact list trust chain for compliance or personal reasons.

Skip it (use Nextcloud instead) if:

  • You need team features: shared calendars, shared contacts, access controls, user management at scale.
  • You want a broader feature set — Nextcloud adds file sync, notes, forms, a full app ecosystem alongside CalDAV/CardDAV. The trade-off is server complexity and no zero-knowledge E2EE.
  • You want active, well-resourced development with a visible roadmap.

Skip it (use Proton Calendar/Contacts) if:

  • You want E2EE but cannot or will not manage server infrastructure.
  • You’re comfortable trusting a hosted provider as long as the encryption is strong and auditable — Proton is open source and independently audited, just not self-hostable.

Skip it (use DAVx5 + Baïkal/Radicale) if:

  • Transit encryption (HTTPS) is enough for your threat model and you don’t need at-rest E2EE.
  • Lighter setup and wider community support matter more than zero-knowledge guarantees.

Alternatives worth considering

  • Nextcloud — the broadest self-hosted personal data platform. Includes CalDAV/CardDAV, file sync, notes, and much more. No zero-knowledge E2EE for contacts/calendars, but considerably more active development and community. Heavier to run.
  • Radicale — minimal CalDAV/CardDAV server, Python-based, single-file config. No encryption layer. Good if you just want sync without Google and don’t need E2EE.
  • Baïkal — PHP-based CalDAV/CardDAV server with a web admin UI. Similar trade-off to Radicale: simple, no E2EE [2].
  • Proton Calendar + Proton Contacts — hosted E2EE alternative. Strong encryption, audited, but closed-source hosted-only SaaS. No self-host option.
  • DAVx5 — this is a sync client for Android, not a server. Often mentioned alongside EteSync because they solve adjacent problems: DAVx5 syncs your Android to any CalDAV/CardDAV server; EteSync is that server with an encrypted protocol on top [2].
  • Infomaniak kSync — Swiss-hosted, open source, free CalDAV/CardDAV sync app for Android. If you trust Infomaniak’s Swiss privacy laws more than your own server hygiene, it’s worth a look [2].

For someone specifically wanting E2EE self-hosted sync for contacts and calendars, the realistic choice is EteSync or nothing in the open-source space. For someone willing to accept hosted E2EE, Proton is the better-resourced alternative.


Bottom line

EteSync occupies a defensible and nearly unchallenged position: it is the only self-hostable, open-source, zero-knowledge E2EE sync solution for contacts, calendars, tasks, and notes. If that specific combination of properties matters to you, there is no substitute, and the reviews confirm it [1]. The deployment is manageable for anyone comfortable with Python and nginx. The server is lightweight enough to run alongside other services for free.

The honest concern is longevity. A blog that stopped in 2021, a CLI tool abandoned for three years, and thin third-party coverage all signal a project with a small team and uncertain momentum. If you deploy EteSync today, you should treat it as infrastructure you own and maintain — not a vendor relationship. That’s fine, and arguably the whole point of self-hosting. But go in with eyes open: if EteSync development stalls further, your migration path is exporting to standard CalDAV/CardDAV formats (which the protocol supports) and moving to Radicale or Nextcloud, losing the E2EE layer.

For the non-technical founder who wants to get Google out of their contact list: the setup overhead is real, and a one-time deployment via upready.dev removes that barrier. For anyone who can handle a Django deployment themselves, this is one of those self-hosted tools where the privacy gain is concrete and the cost is genuinely minimal.


Sources

  1. AlternativeTo — EteSync user reviews and listing (32 likes, 6 reviews). https://alternativeto.net/software/etesync/about/
  2. AlternativeTo — DAVx5 Alternatives listing (includes EteSync context and platform coverage). https://alternativeto.net/software/davdroid/
  3. AlternativeTo — Nextcloud Contacts Alternatives (EteSync listed as alternative). https://alternativeto.net/software/nextcloud-contacts/
  4. Awesome Open Source — EteSync CLI Client project page (commit activity and alternative comparisons). https://awesomeopensource.com/project/etesync/cli-client

Primary sources:

Features

Mobile & Desktop

  • Mobile App