Inspiration

Power outages during Alberta extreme weather create high-stress decision moments where people lose time figuring out what to do first.

We wanted to build a tool that stays useful even when internet is weak or unavailable, and that gives clear, explainable priorities instead of vague advice.

What it does

Blackout Protocol OS is an offline-first emergency decision-support iOS app for households and small facility operators. It helps users:

  1. set up a household/facility profile once
  2. choose Alberta-relevant outage scenarios
  3. view deterministic risk scoring (0-100) with explainable factor contributions
  4. get prioritized protocol actions with “why now”
  5. compare baseline vs current vs operational risk
  6. use Help tools: a. emergency SMS templates (with live location autofill) b. nearby shelters (distance sorted) c. nearby hospitals in Alberta (distance sorted + directions) d. local Alberta support quick actions (911, 811, 211)

How we built it

We built the app with:

  1. Next.js 14 + TypeScript + React
  2. Tailwind CSS
  3. Capacitor iOS wrapper
  4. localStorage persistence + backup/restore
  5. deterministic weighted rule engine (no ML scoring, no randomness)
  6. protocol prioritization engine
  7. location-aware Help components for nearby resources

Core architecture:

  1. profile + scenario + condition state
  2. risk engine computes score + level + reasoned factor breakdown
  3. protocol engine computes prioritized actions and top 3 immediate actions
  4. operational layer recomputes projected score drop from mitigation/execution

Challenges we ran into

  1. ensuring the app remains useful under no-signal conditions
  2. keeping scoring explainable and deterministic under stress scenarios
  3. integrating location-based assistance with graceful fallback behavior
  4. making emergency messaging fast but still editable before sending
  5. packaging/testing reliably for iOS demo flow

Accomplishments that we're proud of

  1. reliable offline-first emergency decision flow
  2. deterministic and explainable risk engine
  3. clear stress-friendly UI with instant recompute
  4. practical Help layer with shelters, hospitals, and local contacts
  5. live location-aware emergency messaging

What we learned

  1. emergency UX must prioritize clarity and speed over feature overload
  2. deterministic systems can be both trustworthy and actionable
  3. offline-first constraints improve reliability and demo stability
  4. local context (Alberta scenarios/resources) dramatically improves usefulness

What's next for One Stack_Blackout Protocol OS

  1. deeper integration with official Alberta/municipal emergency data feeds
  2. richer shelter/hospital live status confidence and update cadence
  3. multilingual support
  4. optional cloud sync for account/data portability across devices

Built With

Share this project:

Updates