{#if !activeConv}
🔒

End-to-end encrypted chat

Messages on kez-chat are encrypted between you and the recipient. Even kez.lat (the server) can't read them — it just relays opaque ciphertext.

To start, ask someone for their KEZ — their handle@server (like an email address). Enter it on the left under Start a chat. Or share yours with them using the copy button.

Don't know anyone yet? Open kez.lat in a second browser window, create a different account, and message yourself between the two.

{:else}

{displayName(activeConv)}

{activeConv.peer_primary}

{#each activeConv.messages as m (m.seq + ":" + m.direction)} {@const boost = emojiOnlyBoost(m.body)}
{#if boost}
{m.body}
{:else}
{m.body}
{/if}

{formatTime(m.ts)}

{/each} {#if activeConv.messages.length === 0}

No messages yet. Say hi — it's encrypted before it leaves your browser.

{/if}
{ e.preventDefault(); send(); }} > {/if}