Resgrid IC is a tablet and desktop optimized digital incident command board — establish command on an incident, build your ICS structure, assign and track resources, and keep everyone accountable in real time.
- About the Project
- Features
- Deployment Options
- Environment Variables
- Getting Started
- Roadmap
- FAQ
- License
Resgrid IC is the Incident Command application for the Resgrid first responder and emergency operations platform. It gives an Incident Commander a live, server-backed command board for one or many simultaneous incidents — from a single structure fire to a multi-agency event — synchronized in real time with the Resgrid Core backend and the Resgrid Responder and Unit apps.
It is built for the way command actually works in the field: tablet-first layouts with a dedicated landscape board, offline-first operation with automatic replay when connectivity returns, and one-tap actions for the things that matter under pressure.
Command lifecycle
- Establish command on any active call, optionally seeded from department command definition templates
- Run multiple incident command boards at once and switch between them
- Transfer command to another user (everyone on the incident is notified), close command when the incident ends
- Command details every resource sees: estimated end time and important information (hazards, staging notes, access instructions)
ICS structure (lanes)
- Free-form lanes — Divisions, Groups, Branches, Sectors, Strike Teams, Task Forces, Staging, Unified Command
- Per-lane identification colors that carry through to map markers
- Optional primary and secondary lane leads: a Resgrid user or an external contact with name/phone/email
- Lanes can be tied to tactical objectives (primary/secondary) and to incident needs
- Lane requirements: min/max units, riding personnel counts, and time-in-role rotation windows — advisory warnings or hard enforcement per lane
- Tap-to-move resources between lanes, with conflict prompts and early-rotation warnings
Resources
- Assign department units and personnel, mutual-aid resources, and ad-hoc (external/volunteer) units and personnel
- Work-time indicators and rotation-due warnings per assignment
- Resgrid users and units receive notifications (push/email/SMS per their preferences) when assigned, moved between lanes, or released
Objectives and needs
- Tactical objectives and benchmarks with type (general/benchmark/safety), progress tracking (0-100%), and completion
- Command-level needs (resources, logistics, medical, equipment, staffing) tracked to fulfillment with quantities and status
Accountability and safety
- Personnel accountability (PAR) computed from check-in timers, with green/warning/critical states
- Scene, benchmark, and custom incident timers with live countdowns
- Auto-logged, timestamped incident timeline (ICS-201 style) for every command action
ICS roles
- Assign NIMS/ICS functional roles (IC, Section Chiefs, Safety Officer, Division Supervisors, and more)
- Role-based incident capabilities enforced by the server
Communications
- On-demand tactical voice channels (PTT) with transmission logging
- Push notifications with iOS critical alerts support
Mapping
- Mapbox-powered incident map with unit AVL (automatic vehicle location) and live personnel positions
- Map annotations synced across devices
Offline-first
- Full command board operation while disconnected — every action queues locally and replays to the server on reconnect
- Delta sync keeps multiple command devices converged on the same board state
- Android: APK and AAB builds for Google Play Store and direct distribution
- iOS: IPA builds for App Store and enterprise distribution
- Download from GitHub Releases
- Static web build that can be hosted on any web server or CDN
- Fully responsive, optimized for tablets and desktops
- See Build Quick Reference for building
- Multi-architecture Docker images (amd64, arm64)
- All configuration via environment variables at runtime
- Suitable for Kubernetes, Docker Compose, or standalone deployment
- Pull from Docker Hub:
docker pull resgridllc/ic:latest docker run -p 8080:80 -e IC_BASE_API_URL="https://api.example.com" resgridllc/ic:latest - See Docker Deployment Guide for details
- Windows: Portable exe and NSIS installer
- macOS: DMG and ZIP (Universal: x64 + arm64)
- Linux: AppImage, deb, and rpm packages
- Download from GitHub Releases
For detailed deployment instructions, see:
Configuration lives in .env.{environment} files at the project root (development, staging, internal, production), validated by env.js. The main variables:
| Variable | Purpose |
|---|---|
IC_BASE_API_URL |
Resgrid Core API base URL |
IC_API_VERSION |
API version (v4) |
IC_RESGRID_API_URL |
Resgrid platform URL |
IC_CHANNEL_HUB_NAME |
SignalR eventing hub name |
IC_REALTIME_GEO_HUB_NAME |
SignalR geolocation hub name |
IC_APP_KEY |
Application key |
IC_MAPBOX_PUBKEY |
Mapbox public key for mapping |
IC_LOGGING_KEY |
Logging key |
IC_COUNTLY_APP_KEY / IC_COUNTLY_SERVER_URL |
Analytics (optional) |
IC_SENTRY_DSN |
Error reporting (optional) |
Resgrid IC is a React Native app built with Expo (SDK 54, prebuild), TypeScript, Expo Router, Zustand, and NativeWind. Package manager is yarn (v1).
Clone the project
git clone https://github.com/Resgrid/IC.git
cd ICInstall dependencies
yarn installStart the Metro dev server
yarn startRun on a platform
yarn ios # iOS device/simulator
yarn android # Android device/emulator
yarn web # Web browser
yarn electron:dev # Desktop (Electron)Native builds require a google-services.json (Android) at the project root.
yarn check-all # ESLint + TypeScript + translation lint
yarn test # Jest test suiteyarn build:production:ios # EAS build — iOS
yarn build:production:android # EAS build — Android
yarn web:build # Static web export
yarn electron:build # Desktop builds (mac/win/linux variants available)- Server-backed multi-incident command boards
- Offline-first operation with sync replay
- Objectives, needs, and lane leads
- Tactical voice (PTT) channels
- Map-side resource drag onto lanes
- Exportable PDF incident summary
- Vertical / high-rise incident mode
- Can I deploy the IC App to Google Play or the Apple App Store?
- You can, but you cannot include "Resgrid" in the name of your application or the store listing.
- What do I need to change to deploy the IC App to the stores?
- Search for all occurrences of
com.resgrid.commandand replace it with your app id, and replace the icons, logos, and splash screen images with your own.
Distributed under the no License. See LICENSE.txt for more information.