Releases: ForPublicOrg/hopline
Release list
Hopline 2.1.2
Patch release: messages that went missing now find their way to everyone.
Install Hopline.apk below on every phone before you leave signal. Android 8+, Google Play services, Bluetooth and WiFi on.
Fixed
- Old messages now finish spreading through the whole group. A message that had already been carried a long way — a courier walking back and forth between groups, or late joiners filling from other late joiners — could quietly hit an internal hop limit and stop spreading, leaving some people without it. Stored backlog now hops as far as it needs to; only the live burst stays capped.
- A message a flaky radio dropped now heals itself, with no reconnect. Phones used to fill each other's gaps only at the instant they linked, so a message lost to a noisy radio could sit missing on a phone until the link broke and re-formed. Linked phones now re-check about once a minute and fill whatever the other is missing, so a dropped message catches up on its own. This is also what lets the mesh shrug off a noisy or partially-jammed radio instead of losing messages on the first hiccup.
Hopline 2.1.1
Patch release: the chat follows new messages again.
Install Hopline.apk below on every phone before you leave signal. Android 8+, Google Play services, Bluetooth and WiFi on.
Fixed
- Auto-scroll to new messages. Sending a message — text, photo, file, voice note or location — could leave the chat sitting where it was, with your own message hidden below the fold, and messages arriving while you watched the bottom of the chat could fail to pull the list down. The message list updates on a background thread, and the scroll used to race it; it now waits for the new bubbles to actually land, then follows. Scrolling up to read history still stays put — only sending, or already being at the bottom, follows the conversation.
Hopline 2.1
Location, voice notes, replies, reactions and @mentions — all still with no signal, no server and no account.
Install Hopline.apk below on every phone before you leave signal. Android 8+, Google Play services, Bluetooth and WiFi on.
Location
Send where you are — GPS works with no signal and no internet — or name a meeting point by typing coordinates or pasting a Google Maps link. Everyone sees the pin with how far it is and which way ("1.2 km away · north-east of you"), worked out on their own phone, offline. Tapping it opens Google Maps. A pin is a hundred bytes, so it keeps working in crowds where photos switch off, and older versions of Hopline just see a maps link to the same spot.
Live location
Share your position for 15 minutes, 1 hour or 8 hours. It rides the presence beacons phones already send each other, so it costs no extra radio traffic and slows down with the crowd exactly like presence does. The People screen shows everyone sharing, with distance and direction, updating as you both walk. A banner in the chat and the always-on notification make sure it is never sharing quietly, one tap stops it, and it stops itself when the time is up. If your phone stops getting fixes, it stops broadcasting rather than repeating a stale position.
Voice notes
Tap the mic, talk for up to a minute, send. A clip is about 180 KB per minute and travels in pieces like a photo; the play bar fills in honestly as those pieces arrive.
Replies, reactions, @mentions
Swipe any message to the right to reply — the quote travels with the reply, so it still reads properly on a phone that never received the original. Tap a quote to jump back to it. Long-press for quick reactions (👍 ❤️ 😂 😮 😢 🙏); tap the pill under a bubble to see who reacted. Type @ for name chips. Being mentioned always buzzes, even for messages that arrive late as backlog — but a reunion delivering ten of them buzzes once, not ten times.
Under the hood
- Protocol version 3. Reactions are carried and gap-filled like chat, so late joiners see them, and older clients are never re-sent the backlog.
- Coordinates travel as integer microdegrees, so message signatures stay byte-identical on every device.
- Crafted-client limits throughout: reactor caps, emoji clipping, coordinate validation, presence-timestamp clamping.
- 46 unit tests, lint clean.
Hopline 2.0
The big one: Hopline grows from a single text chat into a full offline messenger.
Photos and files over the mesh. Tap the paperclip. Photos are shrunk to ~0.3 MB and travel phone-to-phone as signed pieces — they hop through people who never open them, catch up to phones that were out of range, and a photo's ✓ only appears when the whole photo has arrived. Files up to 2 MB.
More than one group. Keep the trek, the family and the festival crew side by side. Switching is one tap; every group keeps its own history, unread counts and photos.
A real home screen. All your chats with previews and unread badges, the shared-internet status at a glance, and your other groups one tap away.
"Shared internet", explained like it is. The Outside World is now a proper page: who has signal right now, send an SMS/email home, read a web page as text — with an honest note that the group can see what goes out.
A look of its own. New ember-and-ink design with complete dark mode, accessible contrast throughout, quieter grouped notifications (a reunion is "23 new messages", not 23 buzzes), and rewritten plain-English copy.
Works with 1.x phones in the same group: text flows normally between versions; photos travel between 2.0 phones.
Install: download Hopline.apk below, open it on the phone, allow installing from this source. Do it at home, before you leave signal.
Hopline 1.1
Hopline 1.1 — a proper chat app, ready for a crowd
New look. The chat now looks and feels like the messaging apps everyone already knows: warm wallpaper, green bubbles with time and ticks inside, coloured sender names, date chips, a pill input with a round send button. The ticks stay honest — ◷ waiting for a phone in range, ✓ on its way, ✓✓ when phones confirm (blue when everyone has it). Tap your own message to see who has it, by name.
Built for a crowd, not just a trek. In a small group every phone confirms every message. In a gathering of hundreds or thousands, phones automatically stop sending per-message receipts (that would be N² traffic) and slow their "I'm here" beacons from 30 s to 5 min, so the radios carry your words instead of overhead. Hop ceiling raised to 32; the People screen gets a search box in big groups.
Removed: the HELP button (sending a message does the same job better) and the weather request (Read a web page covers it).
Install: download Hopline.apk below and open it on the phone. Updating from 1.0 works in place.
Hopline 1.0
Hopline 1.0 — first release
Group chat for when there's no signal. Messages hop from phone to phone.
Install: download Hopline.apk below, open it on the phone, allow installing from this source. Do it on every phone before you leave signal. Needs Android 8+, Google Play services, Bluetooth on, WiFi on.
Use: one person taps Start a new group and reads out the 3-word code. Everyone else taps Join a group and types it (or scans the QR). Then it's one group chat; tap a name for a private chat.
What's in it:
- Phones link directly over Bluetooth/WiFi (Nearby Connections, cluster mode) — no hotspot, no server, no account
- Every phone relays for the others; every phone carries messages for 48 h and fills in what others missed when they meet
- Honest delivery status: Waiting for a phone in range → Sent → Reached 7 of 9 / Delivered ✓✓
- HELP button (hold 2 s): every phone buzzes, shows who needs help and which phones they're near
- The Outside World: if anyone has internet, the group can get the weather, read a web page as text, or send an SMS/email home via that phone
- Group code is the key: phones with the wrong code can't join, read, or forge
Known limits: Bluetooth range per hop (~20–40 m open ground), Android only, no end-to-end encryption, text only. Marked testing — it has been verified with simulated phones on a laptop and a launch test on the emulator; real-radio field testing by the community is what comes next. Please report what you see on your phones.