A network that lives in people's pockets.
Air-Mesh started as a hackathon project with a stubborn question: what does a messaging app look like when you assume the towers are down? The answer is a store-and-forward mesh where shelters write reports offline, couriers physically carry encrypted envelopes, and a base camp laptop turns the backlog into prioritized action.
Principles
Honesty over demo magic
The app never presents mock peers as live connections. If a transport isn't available, the UI says so instead of faking it.
Local first, always
Identity, conversations, rescue reports, audit events, themes, and queued actions all live on the device.
Deterministic verification
One command runs TypeScript, lint, Vitest, Android environment checks, Gradle validation, and Rust tests.
Stack
- Mobile app
- React Native · Expo Router · Zustand
- Storage
- SQLite with local audit logging
- Crypto
- AES-256-GCM · X25519 interfaces
- Mesh
- BLE service boundary · chunking · TTL routing
- Base camp
- Rust · Axum · SQLite dashboard
- Release
- GitHub Actions → signed APK
Limitations
Air-Mesh is an active project, not certified emergency infrastructure. BLE range, Android background restrictions, and battery life all limit real-world reach. Validate it on your own devices before relying on it, and always keep official emergency channels as your primary option.