Skip to content

Is skm the right tool?

skm is for the app where “we cannot read it” is the feature.

The 2026 sync-engine field is crowded and good — ElectricSQL, PowerSync, Zero, InstantDB — and almost all of it syncs plaintext through a server the vendor can read, because that is what server-side search, notifications, and AI features need. If you want those, use one of those. They are better at it.

Use skm if:

  • your data is health, legal, financial, journalistic, or otherwise the kind where “our server was breached” is an ending rather than an incident;
  • you want a local-first app whose reads never wait on a network;
  • you are prepared to give up server-side search, server-side notification content, and server-side anything-that-reads-the-data.

Do not use skm if:

  • you need full-text search across a corpus larger than a device holds;
  • you need the server to compute over the data (analytics, ranking, LLM calls);
  • your compliance story requires server-side inspection of user content.

A short honesty checklist, all of which is expanded in SECURITY.md:

you want skm gives you
the server cannot read record contents yes — the primary claim, tested mechanically
the server cannot forge a record yes — signatures inside the ciphertext
the server cannot tell who wrote what yes
the server cannot tell who talks to whom no — membership and pairwise graphs are visible
the server cannot serve stale or omit records no — not yet; needs a signed log. See ROADMAP.md
a browser app nobody can backdoor no — whoever serves the JavaScript could ship a leak