Re — Communication for When the Internet Goes Dark

- Company
- Personal Project
- Duration
- Feb – Apr 2026
- Team
- Solo
- Role
- Researcher, Strategist, Product Designer & Developer
A decentralized iOS app that keeps people connected when governments shut the internet down — taken solo from field research to a launch-ready product.
Research, strategy, design & development
Native app, QA'd through Xcode Simulator
Bound for both app stores plus resilient distribution channels
What's Re?
The idea
Re runs on a local Bluetooth mesh — phones relay messages directly to one another, so the network needs no cell signal, no ISP, and no central server.
communication and coordination.
situational awareness for real-time safety decisions.
conditions on the ground — a record supporting press freedom and accountability.
isolation with community-validated local information.
Every rival tool is a messenger. Re treats one thing differently: creating a record that survives outside state reach is a first-class objective, not a side effect.
Design values
Free, open-source, encrypted, offline-first. Every decision is tested against one question: does this make the tool more trustworthy to someone in the worst situations?
“An intentional disruption of internet or electronic communications, rendering them inaccessible or effectively unusable, for a specific population or within a location, often to exert control over the flow of information.”
Access Now, definition of an internet shutdown
Report emergencies in seconds
A single tap opens a preset list of emergency types — gunfire, airstrikes, mass arrests — so people can flag danger with shaking hands and no time to type.
See what's unfolding, in real time
Incoming reports as they land — type, severity, and time at a glance — so people can gauge the situation before deciding whether it's safe to move.
See danger on the map, not just in a feed
The same reports plotted geographically, so people can route around danger instead of walking into it.
When the Internet Goes Dark
Silence is a weapon governments choose on purpose
Shutdowns are a deliberate instrument of state control — ordered during protests, conflict, and elections to sever coordination and make events impossible to verify. They don't produce silence; they produce rumours, filling the vacuum with unverified claims exactly when accuracy matters most.
The scale
full-network shutdowns across 14 countries in 2025 (Access Now STOP)
global economic cost in 2025 — a 156% jump over 2024
shutdown events across 52 countries — the most since tracking began in 2016
Those 32 are the severe category — total severance across whole regions, the exact conditions Re is built for. The country list doubles as a deployment map.
Iran — the longest blackout ever recorded
Iran's 2026 blackout ran four and a half months. It severed international ties, fragmented the domestic network, and jammed or seized Starlink antennas; after February's strikes, connectivity sat at ~1% of pre-war levels. NetBlocks called it the longest nationwide shutdown ever recorded. State-issued white SIMs kept officials online throughout.
“Iran is the first country to have had internet connectivity and then subsequently lost it by reverting to a national network.”
NetBlocks, April 2026
Myanmar — shutdowns as cover
Myanmar ordered 95 shutdowns in 2025 — the most of any country for a second year, 76 by the military junta. Access Now documented at least 17 coinciding with airstrikes on civilians. The harm isn't only political: when a March 2025 earthquake struck, shutdowns crippled rescue response.
“The moment the signal drops, we immediately take cover in underground shelters. We've come to understand that a loss of communication signals an impending airstrike.”
Aid worker, Myanmar
The human cost
reported stress during the 2024 Bangladesh blackout (n = 2,085)
reported extreme stress — worry and frustration dominant
Researchers call it digital deprivation. Beyond the emotional toll, shutdowns sever the practical channels families, responders, and journalists depend on when coordination matters most.
Re responds to this gap — a fallback layer built to stay present when everything else goes dark.
Why Local Mesh
A local mesh isn't a better VPN, it's slower, shorter-range, no internet. Its entire value is that it's what's left after every other channel has been neutralized.
Everything else gets countered
The first response — but they route through state-controlled chokepoints, and deep-packet inspection blocks obfuscated protocols. Iran's 2026 allowlist defeated virtually all of them.
Shortwave radio, Starlink, diaspora TV. In 2025, satellite internet was obstructed 14 times across seven countries — antennas jammed and seized.
A purely local, decentralized network — no gateway, no satellite, no ISP routing. The residual category no allowlist can reach.
The mesh field
| Tool | Approach | Traction | The catch |
|---|---|---|---|
| Bridgefy | Bluetooth mesh | +4,000% installs in Hong Kong, 2019 | 2021 cryptanalysis found no real authenticity or confidentiality |
| FireChat | Open-room broadcast | 100,000+ downloads, Hong Kong 2014 | No encryption or authentication at all |
| Bitchat | Bluetooth mesh + Nostr; open-source, launched by Jack Dorsey, 2025 | ~50,000 downloads in a day during Nepal's unrest, Sept 2025 | Unaudited, and publicly disclaimed by its own author |
| Noghteha | Closed-source Bitchat fork for Iran, full Persian support | 70,000+ downloads in three days pre-shutdown; ~370,000 total | Closed-source and opaque; Bitchat's own developer warns against it |
| Meshtastic | LoRa radio, several km range | Off-grid and preparedness communities | Needs dedicated hardware users can't get mid-crisis |
“This is super good in graphics and accessibility. This is fast and secure. But a problem: in my city no one has this app. This makes me alone in this app.”
Noghteha user review (lightly edited for clarity), AppBrain
That review is the whole engineering problem in one sentence. A mesh only works if enough people nearby are running it — a threshold Re has to design around, not assume away. Hong Kong taught the other half: latent demand can mobilize within days.
Adoption velocity is worthless if the cryptography fails on examination. Both have to hold, or the mesh is just Bridgefy again.
Who It's For
Four rings, radiating out from the people the product exists for — each stays visible as the next appears.
Within these rings, design centered on five user segments — each with distinct needs and matching features, detailed in the full documentation.
Product Iteration
The wrong problem, solved carefully
The first direction addressed the psychological, social, and human-rights impact of shutdowns — three pillars of survival infrastructure, with concepts like Calm Mode, Safety Pulse, and an Evidence Vault.
| Pillar | Vulnerability Addressed |
|---|---|
| 1. Psychological Safety | Information isolation, helplessness, anxiety, digital deprivation |
| 2. Social Cohesion | Social paralysis, community fragmentation, isolation |
| 3. Human Rights Defense | Suppression of documentation, impunity for state violence, rights violations |
The pivot
But shutdowns are usually imposed during protests, unrest, or conflict — moments when communication needs shift fast, toward emergency coordination and survival.
Reframed direction
Re became a fallback layer organized around three escalating emergency tiers — each surfacing only what's relevant to that moment, instead of one undifferentiated feed.
| Timeframe | Impact Category | Key Communication Needs |
|---|---|---|
| Tier 1 — Minutes | Immediate life-threatening | Emergency response, evacuation, triage coordination |
| Tier 2 — Hours | Critical safety & survival | Family reconnection, humanitarian logistics, shelter |
| Tier 3 — Days | Civic & political | Press freedom, protest coordination, abuse documentation |
The cut features weren't bad ideas — they were the wrong *timescale*. Under Tier 1 conditions, nobody opens a breathing exercise. Reorganizing around escalating tiers turned a wish-list into a product with a spine.
Validating under stress
Tier 1 screens were run through simulated attention heatmaps: does threat type, severity, and the report action pull the eye first — or does someone scanning in a panic lose them in the noise?
Features
Life-threatening situation
Features for the moments when seconds decide the outcome.

Device-to-device conversation across the mesh — family, trusted peers, and direct coordination during a shutdown.

Gunfire, mass arrest, airstrike, explosion, medical. Each report carries category, area, severity, status, and corroboration count.

A crowd-sourced stream of nearby events, distributed through the mesh as a time-based local feed.
Critical safety and survival
The everyday coordination communities need under sustained disruption — validating information, tracking non-lethal risks, organizing mutual aid.

A lightweight social validation layer. It doesn't replace verification, but helps people navigate uncertainty where verification isn't possible.

A second reporting channel for serious but non-life-threatening conditions — curfews, security staging, air-raid sirens, power and water outages.

Structured public-interest channels: #medical-aid, #water, #food, #shelter, and #evacuation.
Rapid response
Ways to act instantly — without navigating menus or drawing attention.

Built for device seizure. Three taps turn the app into a black screen and its icon into a black square indistinguishable from a dark wallpaper. Unlock is a nine-dot pattern drawn in black on black — the unlock surface itself is invisible.

A three-second long-press on any screen opens a quick-report popover — for moments where multi-screen navigation is too slow.
Under the Hood
Re adapts Bitchat's open-source transport, routing, and security layers, and adds a new application layer built for this project. Scroll or tap through them.
Nostr sits beside this stack as an optional internet relay overlay — a fallback delivery path when a connection exists, and gone by definition during a full shutdown. Re's core function never depends on it.
Reaching the outside world
The people who most need a report from inside a blackout — family, responders, journalists — are on the internet; the people making it are on Bluetooth with none. A device with both radios can bridge the two. Crucially, bridging is off by default: running one reveals a device in the area has working internet, exactly what an adversary wants to find. It runs under a separate identity, so bridging never de-anonymizes the operator.
Rate-limiting the panic
Emergency reports are the most throttled channel in the app — one every twenty seconds — precisely because they matter most. A flood of false gunfire reports would saturate the mesh and destroy the corroboration count that makes the monitor worth trusting. Limits key on message content as well as sender, so rotating identities can't slip the same spam through.
Sizing the Mesh
Most portfolio pages assert that a mesh works. This one calculates when it doesn't.
At ~75 m of effective Bluetooth range, one phone covers about 0.018 km². For a message to reliably *percolate* across the network, four to six devices need to be within radio range at any point. Run that against downtown Toronto (~4 km², ~48,000 people):
| Adoption | Active devices | Per coverage circle | Result |
|---|---|---|---|
| 1% | ~480 | ~2 | Below threshold most of the time — fragmented |
| 2% | ~960 | ~4 | At the threshold — works, but probabilistic and slow |
| 5% | ~2,400 | ~10 | Comfortably reliable propagation |
| 10% | ~4,800 | ~21 | Risk of radio congestion under crisis load |
Both undersupply and oversupply fail — too few devices fragment the network, too many congest the radio. Phone-only mesh is unreliable without years of pre-crisis seeding. "In my city no one has this app" is that threshold, in human terms.
The fix isn't more downloads — it's infrastructure. A small number of always-on relay nodes drops the per-user adoption a city needs to reach viability.
The ESP32 resilience layer
Cheap, always-on ESP32 relay nodes — hosted by community members on rooftops and inside hospitals, libraries, and shops — act as persistent anchors, converting the network from opportunistic to anchored. Sized for downtown Toronto:
relay nodes to blanket downtown Toronto's ~4 km² core
total hardware cost, at roughly $15–20 per node
central coordination — each node is plug-and-forget, with no user logs
The limits are real: 2.4 GHz jamming can disable every node at once, fixed nodes can be mapped, and coverage clusters in higher-income neighbourhoods first. Conditional infrastructure — civic resilience augmentation, not a replacement telecom network.
What Re Can't Do Yet
For a tool people would trust with their safety, the honesty is the brand.
- No independent security audit yet. Re builds on Bitchat because it's *auditable* — not because it's been audited. A third-party audit is a prerequisite for deployment.
- Export has no cryptographic integrity. Today's export is a plaintext file — its value is survivability, not tamper-evidence. Signed export is near-term roadmap.
- The prototype is English-only — not yet in Persian, Burmese, Arabic, or Bangla, the languages of the populations most affected.
- Phone-only range is a neighbourhood, not a city. Citywide reach depends on the ESP32 layer plus real adoption density.
How It's Built & Shipped
| Category | Stack |
|---|---|
| Core Platform | Native iOS, Swift, SwiftUI |
| Architecture | Model–View–ViewModel (MVVM), ChatViewModel*, MessageRouter* |
| Offline Communication | BLE via BLEService*, Wi-Fi Aware peer-to-peer † |
| Internet Fallback | Nostr relay overlay via NostrTransport* (NIP-17 private DMs) |
| Security | Noise Protocol (Noise_XX_25519_ChaChaPoly_SHA256)*, CryptoKit, KeychainManager* |
| Maps & Location | MapLibre-Native, OpenStreetMap MBTiles, Geohash, LocationStateManager* |
| Systems Services | NWPathMonitor*, FileManager*, UIKit bridging |
| Dependency / Version Control | Swift Package Manager, GitHub |
| Distribution | Apple App Store, Google Play Store (planned — not yet shipped) |
* Adapted from the open-source project Bitchat — Re's technical foundation. † iOS doesn't expose classic Wi-Fi Direct; the peer-to-peer path uses Wi-Fi Aware (iOS 26), requiring iPhone 12 or later.
How it was built
- 1
Fork the foundation
A fork of the open-source Bitchat repository, inheriting its protocol foundation for transport, routing, and encryption.
- 2
Build with Claude Code
Features built iteratively with Claude Code as the primary implementation tool — generating, refactoring, and debugging against the codebase.
- 3
Review & QA in Xcode Simulator
Each change prototype-tested in the iOS simulator; UI details requiring hands-on judgment are fixed manually.
- 4
Design in Figma
Interface design explored in Figma before implementation, feeding learnings back into the next build cycle.
Every plan is reviewed before it reaches Claude Code. On the Bitchat separation work, that caught an ordering which treated panic-wipe and identity migration as cosmetic cleanup — for a safety tool, exactly the parts that can harm a user.
Shipping it: a nonprofit, built to be installed before the crisis
Re is planned as a nonprofit — the Resilience Mesh Foundation — free, no ads, no telemetry. Distribution runs through app stores plus resilient channels, and success is measured by preparedness — installed base in high-risk regions before a blackout — not daily actives.
Early build
The first working build carried Bitchat's inherited terminal aesthetic — functional, but not built for someone scanning for a threat under pressure. It validated the data model and mesh sync before any visual design pass.
Interested in working together?
Let's talk about your project.