-
-
SurvKit: everything you need when nothing works. Fully offline, no account, no tracking.
-
SOS tab: hold-to-call 112, first aid, emergency numbers, flashlight, siren, offline map and compass. Free forever.
-
Tools: 40 offline instruments, from spirit level, altimeter and decibel meter to timers, calculators, hazard references and signals.
-
Supplies: stock lists and needs calculator based on official German civil-protection (BBK) recommendations.
-
Profile: emergency profile, wallet card (PDF), family emergency plan and kids' ID card, plus optional offline packs: Wikipedia and maps.
SurvKit: Everything you need when nothing works
Inspiration
I've spent years working as a photojournalist in conflict zones and crisis regions. One thing you learn there fast: when infrastructure fails, your phone becomes either your most useful tool or a useless brick. No network means no maps, no messengers, no way to look up how to treat a wound.
The original plan was bigger and vaguer. I wanted to build an everything app: one app that has and can do everything you might need, so you never depend on a dozen services and subscriptions you don't own. The working title was literally "Everything". Somewhere along the way it became clear what "everything" actually meant to me: the things you need when the network is gone. First aid. Maps. A way to reach people nearby. What to eat, what not to touch, how to tie a knot. The everything app turned out to be a survival kit. So that is what it is called now.
Back home in Berlin, I watched the same vulnerability play out in slow motion: the 2021 Ahr valley floods, blackout scenarios in the news, official recommendations from Germany's Federal Office of Civil Protection (BBK) that most people never read. Emergency preparedness apps existed, but they all assumed the one thing an emergency takes away first: a working internet connection. Most also wanted an account, a server, and your data.
So I built the app I wished existed: everything you need, fully offline, fully private.
What it does
SurvKit bundles a complete crisis toolkit into a single iOS app that works in airplane mode, during a blackout, or in the middle of nowhere:
- First aid: 26 step-by-step procedures based on WHO, Red Cross and ERC guidelines, a CPR metronome, and emergency numbers for 31 European countries
- Offline maps (OpenStreetMap, 37 downloadable map packs) with compass, altimeter, waypoints, track recording and GPX/KML export
- Peer-to-peer messenger: end-to-end encrypted chat directly between nearby devices over Bluetooth/Wi-Fi, no cell network required
- Encrypted document vault (AES-256-GCM) with preparedness templates for IDs, insurance and medical documents
- Supply planner following official BBK recommendations, inventory with expiry dates, checklists, a family emergency plan and a kids' emergency ID card
- Knowledge library: 471 articles in 40 categories, 25 crisis scenarios, 51 plants, 13 trees, 14 mushrooms, 28 animals, 16 knots, 94 radio frequencies and 1,563 medicine leaflets
- 40 tools and 14 games, plus a learning module with 345 primary school lessons and 264 language lessons
- Optional downloads: map packs and 368 curated Wikipedia, Wikibooks and Wikivoyage articles, fetched once and then fully offline
- Every screen is also available in plain language. VoiceOver and Dynamic Type are supported throughout.
Privacy by design: no account, no cloud sync, no tracking, no analytics SDKs. All content and personal data stay on the device. The only network calls in the whole app are optional and user-initiated: a weather lookup, content downloads, and the feedback form.
How I built it
The first version is built fully native in Swift. Going native was a deliberate choice: the hardest features (peer-to-peer networking, on-device encryption, background behavior, offline map rendering) live close to the operating system, and I wanted direct access to Apple's frameworks without an abstraction layer in between.
The architecture follows one rule: the network is optional, always. Every feature is designed offline-first, with connectivity used only for optional one-time content downloads.
The technically hardest pieces:
- The peer-to-peer messenger uses Bluetooth and Wi-Fi with end-to-end encryption (Curve25519 key exchange + ChaChaPoly), so two phones can talk with zero infrastructure between them. Multi-hop mesh relay is deliberately not in v1: I deleted a half-finished router rather than ship something that only looks like it works.
- The document vault encrypts everything with AES-256-GCM, with keys never leaving the device.
- Offline maps meant handling tile storage, GPX/KML export, and track recording without any backend.
For monetization, everything life-saving is free. The SOS tab with 112, first aid, emergency numbers, offline maps, flashlight and siren never sits behind a paywall. The other four tabs (Knowledge, Tools, Supplies, Profile) are free for seven days. After that a single one-time purchase, "SurvKit Pro" for 9.99 EUR, unlocks them for good. No subscription. The trial clock runs on the device without a server, and RevenueCat handles the purchase and the restore.
Challenges I ran into
- Peer-to-peer networking on iOS is unforgiving. Getting reliable device discovery and message delivery over Bluetooth/Wi-Fi Direct, across backgrounding, distance, and interference, took far more iteration than any other feature.
- Squaring monetization with "zero tracking". My privacy promise rules out analytics and ad SDKs. RevenueCat turned out to be the right fit: it's purchase infrastructure, not tracking, so I could add sustainable revenue without breaking the promise the app is built on.
- Scope discipline. An everything app can grow forever. Deciding what a v1 must do, and cutting everything else to hit a real App Store release, was harder than writing code.
- Responsibility of the content itself. First aid instructions aren't a place for "good enough". Everything is based on WHO/DRK/ERC guidelines, with clear disclaimers that the app supports but never replaces professional help.
- Knowing when to remove a feature. I shipped an on-device AI assistant, then measured it: the 1B to 3B models a phone can run turned safety instructions into their opposite ("close the gas valve" became "open"). I switched it off. The curated knowledge base answers word for word now, and nothing gets paraphrased.
What I learned
- Offline-first isn't a feature you add. It's an architecture you commit to on day one.
- Privacy constraints are creative constraints: removing servers and accounts eliminated entire categories of complexity and risk.
- From my previous civic tech apps I knew how to ship; SurvKit taught me how to ship something people might one day depend on. That changes how you test.
What's next
- Android version plus multi-hop mesh relay, so messaging works across the platform divide and beyond direct range, exactly when it matters most
- More languages and country coverage beyond the current 31 European emergency number sets
- Community-driven checklists and regional scenario packs
Because the best time to install an emergency app is before the emergency.
Built With
- core-data
- cryptokit
- fastlane
- ios
- maplibre
- multipeerconnectivity
- openstreetmap
- revenuecat
- swift
- swiftdata
- swiftui
- xcodegen
Log in or sign up for Devpost to join the conversation.