Skip to main content

Why messages are not always instant

Popular messengers hide a data center in the middle. You send; their server holds the line until the other phone wakes. Instant (or close) is easy when someone else is always online on your behalf.

Glitr refuses that shape. The always-online party is your git host, and git hosts are not chat servers. They accept a push when you make one. They do not ring a peer.

The clock you are on

  1. You encrypt the line and push it to your repo.
  2. They may be offline. Nothing waits on them.
  3. They later fetch your repo and decrypt what is addressed to them.
  4. They write inbox plus a read receipt on their repo.
  5. Your next poll fetches that receipt and turns ticks blue.

Each step is a network round trip you already understand from git. Polling (about every ten seconds, plus Poll now) is how the app notices new tips. That is why a quiet contact is seconds, not the blink of a typing indicator from a socket in a data center.

When it is instant

Both apps running, handshake complete, Live on the contact. Then the sequence above is skipped for that send. Close a laptop and you are back on the clock.

Ticks are the honest UI

A single tick is not a lie: it means “on this device.” Double gray means “on the mailbox” (or acked live). Blue means “they opened it.” If a product showed a single check and called it delivered to a person who is camping, it would be guessing. Glitr waits for git (or the live ack).

Design trade

You gain a mailbox you can clone. You lose the feeling that a corporation is holding your unread line in RAM. If you need the feeling more than the mailbox, you will prefer a conventional messenger — and you will be renting their uptime again.

How to live with the trade: Send, receive, and read receipts.