Skip to case study

Security Operations SaaS / 2023–Present

PatrolSmart

Built a cloud-based, multi-tenant security operations platform with an Admin Web Dashboard for managers and a Mobile Collector App for guards to submit GPS-tagged incident reports with photos.

The spark

My sister runs a small security company, about 20 guards protecting properties across the city. She was paying over $1,000 per month for security management software that was clunky, outdated, and 'just okay.' Her guards hated using it. Scheduling was a nightmare. When clients asked for incident reports, she'd spend hours pulling data together manually. I said, 'I could build something better.' What started as a sibling challenge turned into months of shadowing guard check-ins, understanding why she dreaded Mondays (payroll + scheduling chaos), and mapping every friction point.

The problem

Security company owners struggle with administrative overhead, guards lack efficient real-time reporting tools, and clients have no visibility into operations at their sites.

Who it affects
Security company owners/managers struggling with administrative overhead, guards in the field with no efficient real-time reporting, and clients (property managers, businesses) lacking visibility into security operations.
Previous workflow
Paper-based incident reports and physical logbooks, Excel/Google Sheets for shift scheduling, phone calls and text messages for guard dispatch, manual PDF or paper report generation for clients.
What it costs
Hours per week lost to manual data entry, delayed incident response due to communication gaps, compliance risks from missed certifications and lost documentation, client churn from lack of transparency, inability to scale beyond a handful of sites.

The solution

Built a cloud-based, multi-tenant security operations platform with an Admin Web Dashboard for managers and a Mobile Collector App for guards to submit GPS-tagged incident reports with photos.

Outcome

Reduced incident report turnaround from hours to seconds; GPS-tagged field reports feed a live Mapbox dashboard in real time. In private beta with one agency.

What I learned

Multi-tenancy must be designed from day one; retrofitting agencyId scoping across an entire codebase is tedious, and security rules require both careful logic and thorough testing to get right.

Technical decisions

React 18 + React Router
Familiar ecosystem, component-based architecture for a complex dashboard with many views
Radix UI + Tailwind + shadcn/ui
Production-ready accessible primitives with full styling control, no heavy component library lock-in
Mapbox GL + Leaflet
Mapbox for premium vector tiles, Leaflet for incident clustering and heatmaps
React Native / Expo
Single codebase for iOS and Android, easy camera/GPS integration, familiar React patterns
Firebase (Firestore + Auth + Storage + Functions)
Serverless, real-time sync, built-in auth, generous free tier, perfect for MVP
react-hook-form + Zod
Performant uncontrolled forms with type-safe schema validation
Recharts
Lightweight, composable charts that integrate naturally with React

The hard part

Implementing secure multi-tenancy with Firestore. The hardest part was designing a data model and security rules that would completely isolate each agency's data while allowing flexible role-based access within each tenant. Solved by: Adding agencyId to every document across all collections, writing helper functions in Firestore Security Rules to check isSameAgency() and isAdmin() before allowing reads/writes, updating AuthContext to capture and store agencyId at login, and refactoring all data fetching to include where('agencyId', '==', agencyId) filters. This ensures complete data isolation at the database level: even if frontend code had a bug, security rules would reject unauthorized access.

Next steps

  • Client Portal – Separate login for clients to view incidents, analytics, and request extra patrols
  • Push Notifications – Real-time alerts for new incidents, expiring certifications, shift changes
  • Certification Tracking – Upload/manage guard certifications with automated renewal reminders
  • Advanced Analytics – Incident heatmaps, response time trends, scheduled PDF reports emailed to clients
  • Offline Mode – Queue incident submissions when guards are in low-connectivity areas
  • White-Label Branding – Let each agency customize dashboard with their own logo and colors