Inspiration

When governments shut down the internet, communication becomes a weapon—by removing it. During recent internet blackouts in Iran, people were cut off from each other when they needed coordination and safety most. We wanted to explore whether communication could exist without permission, using only what people already carry: their phones

What it does

Pigeon is an offline emergency broadcast app that lets phones relay messages over Bluetooth when Wi-Fi and cellular networks are unavailable. Messages spread device-to-device, allowing nearby users to share alerts, requests for help, and critical information—no internet.

How we built it

We built Pigeon using Bluetooth-based peer discovery and local message broadcasting. Each device acts as both a sender and relay, forwarding messages to nearby phones to extend reach beyond a single Bluetooth hop. The system is lightweight, requires no accounts or servers

Challenges we ran into

Implementing multi-hop message relaying was the hardest challenge. Bluetooth connections are unreliable and inconsistent across devices, making it difficult to manage connection hopping, message duplication, and timing without a central coordinator

Accomplishments that we're proud of

We’re proud that we built a fully functional, infrastructure-free communication system under real technical constraints. In a short time, we went from a high-level idea to a working prototype that supports offline message broadcasting and multi-device relaying.

What we learned

We learned how fragile modern communication systems are and how much they rely on centralized infrastructure. Technically, we gained hands-on experience with Bluetooth networking, and distributed systems

What's next for Pigeon

Next, we want to improve message propagation reliability, reduce duplication, and add basic safety mechanisms such as message expiration and simple verification. Longer-term, we want to explore real-world emergency use cases, including disaster response and communication during large-scale network outages

Share this project:

Updates