A phone-only, off-grid communication toolkit for when cellular networks and internet access aren't available — whether from a natural disaster, remote terrain, infrastructure failure, or a deliberate shutdown.
No internet. No cell service. No external hardware. Just the phones already in people's pockets, talking to each other directly.
Kriptic is context-agnostic by design — it doesn't know or care why a network is down.
When networks go down — a storm knocking out towers, a trek through terrain with no signal, an infrastructure failure, or a deliberate shutdown — people lose far more than social media: the ability to coordinate, warn others of danger, find help, and access basic safety knowledge. Kriptic restores that baseline capability using only what a stock Android phone already has: Bluetooth, Wi-Fi radios, GPS, and local storage.
| Pillar | What it actually does |
|---|---|
| Identity | A one-time username, chosen on first launch, tied to a locally generated keypair. No phone number, no account, no server-side registration. Usernames can't collide and can't be changed. |
| Mesh Comms | Encrypted peer-to-peer messaging over Bluetooth LE mesh, hopping device to device with no internet or cell tower required. Organized into channels (General, Priority, Danger/Alert, Information, ...). |
| Offline Map | A pre-bundled, high-detail offline map of the Delhi NCR region — streets, landmarks, shop names, and POIs from OpenStreetMap data — with no download step needed at runtime. |
| Marker System | Drop a typed pin on the map (Danger, Safe, Help, Gather, ...) with an optional description. Pins broadcast over the mesh so the whole group sees them, and expire automatically so stale data doesn't mislead people. |
| Silent SOS | A fast, low-friction trigger that broadcasts your location and status to nearby peers and asks for help — no need to fully unlock or navigate the app. |
| Panic Wipe | Instantly destroys local data. No confirmation dialog — the trigger is the confirmation. |
| Knowledge Base | A searchable, offline safety reference — first aid, environmental hazard exposure, and know-your-rights information for emergency and detention scenarios — organized by the same channel-style categories as the rest of the app. |
- Not a chat app that "also works offline sometimes" — offline-first is the whole architecture, not a fallback mode.
- Not dependent on any server we control. If our backend disappears, the app still works, because there is no backend in the critical path.
- Not carrying an on-device LLM in v1. The Knowledge tab ships as static, indexed, offline content in v1; an on-device LLM interface is an explicit v2 candidate — see
docs/03_SCOPE.md.
docs/00_BRIEF.md— the project brief: problem, users, principles, success criteriadocs/01_ARCHITECTURE.md— what we're building on top of (fork of bitchat-android) and whydocs/02_PROJECT_STRUCTURE.md— the monorepo layoutdocs/03_SCOPE.md— explicit build / don't-build-yet list for v1docs/04_DESIGN_SYSTEM.md— the visual languagedocs/05_ROADMAP.md— v1 → v2 → v3 milestonesdocs/06_THIRD_PARTY.md— every open-source project we build on, fork, or reference, and whyCONTRIBUTING.md— how to get set up and send a PRCODE_OF_CONDUCT.md
- Base: fork of bitchat-android (Kotlin, Jetpack Compose, Material 3, MIT), stripped to its mesh + crypto core and rebuilt on top of
- Language: Kotlin
- UI: Jetpack Compose + Material 3, custom-themed (see
docs/04_DESIGN_SYSTEM.md) - Mesh transport: Bluetooth LE mesh (inherited from bitchat's transport layer), multi-hop store-and-forward relay
- Maps: MapLibre Native Android SDK + offline PMTiles vector tiles built from OpenStreetMap Delhi NCR extracts
- Local storage: Room + SQLCipher (encrypted at rest), wiped on panic trigger
- Min SDK: 26 (Android 8.0)
MIT — see LICENSE. This matches the license of bitchat-android, the codebase Kriptic is forked from. Map data bundled with the app is derived from OpenStreetMap and is separately licensed under the Open Database License (ODbL), which requires attribution and share-alike on the data, not the code — see docs/06_THIRD_PARTY.md for the exact attribution text to keep in the app.
Early-stage, active development. Not yet ready for real-world reliance — see docs/03_SCOPE.md for what's actually load-bearing today versus planned.