Skip to main content

Live messages vs offline delivery

Glitr has two ways to move a message. You do not pick a mode in settings. The contact row tells you which one the next send will use.

Offline (git) — the mailbox

This is the default, and the one that still works if the other person is asleep.

  • You write encrypted outbound into your repository and push.
  • They fetch your repository when they next poll (or when you tap Poll now on their side).
  • Delivery is as fast as git hosting and the poll interval — typically seconds, sometimes longer on a slow host or a large clone.
  • History remains in the repositories. That is a feature (backup) and a responsibility (the host stores ciphertext).

Use this mental model: email, if email were a git push.

Thread on the git path with double gray delivery ticks
Offline delivery looks like this: ticks after a push, not after a ping.

When both apps are open and can form a peer connection:

  1. Each side publishes a handshake on git (signaling on their own repo). The payload is encrypted to the other person. Git is only the bulletin board.
  2. Both sides complete the handshake. The contact shows Connecting, then Live.
  3. New messages travel on that link. No outbound row. Receipts travel on the link too.
  4. If the channel drops (tab closed, network change, NAT that never cooperated), send falls back to git.

Use this mental model: you ran into each other in the hallway, so you stop leaving notes on the door.

Contact showing Live after both apps stay open
Both sides present, handshake done, status reads Live.
Sending a message while the contact header shows Live
Same composer. The link, not git outbound, carries this send.

What you have to do

Keep both sides open if you want Live. That is the only ritual.

You do not start a “call” to send live text. After a poll, status updates by itself. If it stays Connecting with both of you present, the network is not allowing the direct path — git still sends.

NAT, corporate firewalls, and some mobile networks fail the direct path and succeed at git. That is expected. Glitr is still doing its job.

What Live is not

Live is a data link for messages. It is not marketed here as voice or video calling. If you see call chrome in the app, treat messaging as the supported live feature.

Live also does not replace backups. Messages that only existed on a live link still get local sent/inbox writes; they do not rely on git outbound. Do not assume a host clone contains every live-only line unless you have synced in a way that persisted them.

Going back to git

Close a tab, lose a network, or wait until ICE gives up. The next send uses outbound again. Ticks behave as in Send, receive, and read receipts.

More on the handshake: Direct live links.