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 communication app that keeps people connected when governments shut the internet down. Built 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
Some content shown in this project — screens, data, and events — is simulated for demonstration purposes. It does not reflect real product output or actual events, and shouldn't be taken as such.
What's Re?
Re runs on local Bluetooth mesh as the main routing layer. No need of central server, cell signal, ISP, your phones relay messages directly to one another. It's free, open-source, encrypted, offline-first. Every decision while building is tested against one question: does this make the tool more trustworthy to someone in the worst situations?
community and reduce isolation with validated information.
communication and coordination.
situational awareness for real-time safety decisions.
“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
See what's unfolding, in real time
A community-validated monitor that helps restoring information flow and situational awareness.
See danger on the map
The same reports plotted geographically, so people can route around danger instead of walking into it.
Report emergencies in seconds
A three-second hold opens a preset list of emergency types, allowing people to flag danger right away.
When the Internet Goes Dark...
Shutdowns are a deliberate instrument of state control — ordered during protests, conflict, and elections to sever coordination and make events impossible to verify. They produce silence, rumors, and filling the vacuum with unverified claims exactly when real information matters most.
The scale around the world
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 shutdowns are the severe category — full-network shutdowns ordered by state authorities, including executive/local/state governments, judiciaries, law enforcements, and military. Affecting locations in more than 1 state, province, or region.
And the actual causes? Communal violence. Conflict. Elections. Information control. Political instability. Protests.
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 people depend on when coordination matters the most.
Re responds to this gap — a fallback layer built to stay present when everything else goes dark.
Our Goal
Provide a reliable and secure communication system that helps communities maintain information exchange and coordination.
Connectivity
Develop an offline system that functions through local device-to-device mesh connectivity.
Awareness
Provide real-time awareness of threats, emergency signals, and safety conditions through structured reporting.
Trust
Reduce misinformation by developing a community-based validation system.
Designing for Non-Uniform Urgency
Re organizes its features around three tiers of emergency levels to reflect the non-uniform nature of crisis. During a shutdown, urgency and certainty evolve at different rates: some events require immediate action, while others develop gradually or remain probabilistic.
Re extends the impact framework into the product flow and information architecture, and structure the system around these tiers, rather than treating all information as equally urgent or equally verified.
Minutes to hours
Immediate Life-Threatening
Prioritized and supported features for emergency situations where every second could mean life or death.
Core question: "How do I survive the next few minutes?"
Hours to days
Critical Safety & Survival
The coordination communities need under sustained disruption — validating information, tracking non-lethal risks, organizing mutual aid.
Core question: "How do we stay safe and support one another?"
Days to weeks
Civic & Political
After survival is addressed, communities need tools to protect civic participation, accountability, and access to information.
Core question: "How do we preserve our rights, our voice, and our community?"
A crowd-sourced stream of nearby events, ordered by time rather than by engagement. Each entry carries where it came from and how many people have corroborated it.
Why Local Mesh
A local mesh isn't a better VPN, it's slower, shorter-range, no internet. But it could be the only channel that's left after every other channel has been neutralized.
The first response — but they route through state-controlled checkpoints, and traffic inspection blocks disguised connections. Iran's 2026 blocklist defeated virtually all of them.
Shortwave radio, Starlink, diaspora TV. In 2025, satellite internet was blocked 14 times across seven countries — equipment jammed and seized.
A purely local, decentralized network — no gateway, no satellite, no internet provider involved. The one channel no blocklist 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 reveals the constraint of mesh network in one sentence. A mesh only works if enough people nearby are running it, it's a threshold Re has to design around.
Stakeholders
Ranges from users whose safety depends on Re to users whose actions bring Re into existence. Each group has distinct needs and features corresponded to it.
Product Iteration
Another point of view on the impact
The first product direction addressed the psychological, social, and human-rights impact of internet 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 |
But 32 of the full internet shutdowns in 2025 were imposed during protests, unrest, or conflict — moments when communication needs are the most important, and may decide the outcome of emergency situations. The product direction shifted 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
Re shapes the product's features, interactions, and interfaces to remain usable under server cognitive load during high-stress conditions. Tier 1 screens were run through simulated attention heat maps: does threat type, severity, and the report action pull the eye first or does someone scanning in a panic lose them in the noise?
Under the Hood
Re adapts Bitchat's open-source transport, routing, and security layers, and adds a new application layer built for this project.
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.
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.
The process
- 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 refinements were later explored in Figma before implementation, feeding learnings back into the next build cycle.
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.
Sizing the Mesh
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.
Future build – The ESP32 resilience layer
Cheap, always-on ESP32 relay nodes, hosted by community members on rooftops and inside hospitals, libraries, and shops. A new layer that act as persistent anchors, converting the network from opportunistic to anchored. This is part of the future build Re need to add to its infrastructure. 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
- 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.
Interested in working together?
Let's talk about your project.