When wildfires threaten life and property, every second counts. That’s why millions of people across 22 states turn to Watch Duty, a nonprofit service that delivers real-time wildfire and natural disaster alerts directly to the public.
What began as a grassroots effort of radio operators sharing live updates across three counties on Facebook and Twitter has evolved into critical public safety infrastructure. Today, Watch Duty is relied on not only by local residents, first responders, and government officials, but also by people across the country seeking real-time updates on friends, family, and wildfire conditions. During the 2025 LA fires, the app became the #1 app nationwide, shared by news outlets and widely referenced on social media.
But, like any high-impact service, the tech powering Watch Duty has to be as reliable as the mission it supports.
When every second counts, infrastructure can’t slow you down
In the beginning, Watch Duty’s service was built on a Python-based backend by a lean team of volunteer engineers. Without a dedicated DevOps team, they didn’t have the time or resources for complex infrastructure or manual maintenance.
As the service evolved from a regional tool into a critical public safety platform, the pressure on its infrastructure grew. The team needed to deliver real-time alerts during volatile, high-stakes conditions, often scaling from thousands to millions of users in a matter of hours. Any deployment delays or infrastructure hiccups risked slowing their ability to push urgent updates to people in danger. Manual setup during fire season wasn’t just inefficient, it could impact real-world outcomes.
In exploring their options, they evaluated alternatives like Amazon Elastic Beanstalk and other IaaS-style solutions, but those required more oversight and complexity than their team could support. Ultimately, they needed a platform that could take care of the heavy lifting, enabling fast, reliable deployment without requiring constant attention. No frills, no babysitting — just infrastructure that worked under pressure.
Building a Slack-integrated solution with growth in mind
Watch Duty’s infrastructure goals were clear from day one: deploy fast, scale easily, and avoid ongoing maintenance. With prior experience using Heroku, the engineering team chose the platform for its frictionless setup and reliable performance.
Using Heroku, they deployed their Python-based backend using Heroku’s GitHub integration and Automatic Deploys. Heroku Key-Value Store supported real-time app logic, and pre-production environments gave them a safe way to stage updates before going live.
Behind the scenes, Heroku powered a live alerting workflow coordinated through Slack. Bots monitored external signals like first responder radio traffic, triggering alerts in monitored Slack channels. Trained reporters verified incidents in real time, and once confirmed, Heroku-hosted APIs pushed the alerts instantly to the public via the app.
As Watch Duty’s service grew, Heroku continued to support their momentum. The team launched new services, like a geospatial tile server deployed with Terraform, and added autoscaling web dynos to handle unpredictable traffic spikes. Static IPs and logging integrations improved observability without adding ops overhead. And with container support, Heroku let them keep workloads portable while staying focused on delivering fast, accurate alerts.
Heroku let us launch and scale without building a DevOps pipeline from scratch. It just worked, so we could stay focused on the service.
Dave Merritt, Chief Technology Officer & Co-Founder, Watch Duty
A reliable foundation for life-saving alerts
Watch Duty’s mission is high-stakes: get the right information to the right people, in real time, during a crisis. Heroku provided the backend foundation that made it possible, delivering consistent uptime and fast, low-maintenance deployment.
Zero downtime during record LA wildfire traffic
When it comes to public safety, downtime isn’t an option. Since launch, Watch Duty has maintained zero downtime on Heroku, even as usage surged during wildfire emergencies. During the January 2025 LA fires, the platform served over 3.5 million daily active users, handling hundreds of thousands of requests per minute through Heroku-hosted APIs. With 100,000 requests per second at the caching edge, the system scaled seamlessly behind the scenes. This reliability meant Watch Duty could meet demand, even under extreme pressure, without the platform becoming a bottleneck.
Scaling nationwide without dedicated DevOps staff
Heroku enabled their team to grow a regional wildfire alert system into a nationwide, production-grade service. In just three years, Watch Duty scaled from 3 counties to 22 states and grew from 100,000 users to 9 million, all without hiring dedicated DevOps staff. By abstracting away the complexity of setup, scaling, and monitoring, Heroku gave their engineers a platform that allowed them to focus on building the service, not operating it.
Self-serve simplicity, with support that shows up when it matters
For four years, Watch Duty has run its Heroku deployment with minimal assistance, only having to open three or four support tickets total. But during critical moments, like preparing for massive user surges during the LA fires, Heroku support was responsive and effective. When they needed to raise their dyno limits fast, support stepped in without delay. This balance of low-touch operations and fast, reliable support gave the team confidence to scale during emergencies, without diverting focus from their core work.
We’ve served millions during fire season with zero downtime. Heroku runs everything quietly and reliably in the background.
John Mills, CEO & Co-Founder, Watch Duty
What’s next for Watch Duty?
As Watch Duty’s service expands, the team continues to deploy new backend services on Heroku, and looking ahead, they’re exploring Heroku Fir, the next-generation runtime built for container-native apps, open telemetry, and modern cloud practices. For a lean team operating under pressure, Fir offers a path to even more streamlined operations and infrastructure portability.
Watch Duty is also expanding eastward, with plans to add service coverage to additional states. And wildfires are only the beginning. The team is actively working to support reporting on other types of natural disasters, along with post-crisis needs like food, shelter, and replacement IDs for those affected by disasters. To support their mission, visit watchduty.org/donate to contribute.
Launch Your Next Project with Heroku
How They Did It
- Deployed a Python-based backend to Heroku using GitHub integration and Automatic Deploys for streamlined releases
- Used Heroku Key-Value Store to power real-time alert logic
- Coordinated live incident reporting via Slack bots that triggered updates to Heroku-hosted APIs for instant public alerts
- Scaled new services like a geospatial tile server using Terraform, with autoscaling web dynos and container support for portability
- Leveraged pre-production environments, static IPs, and logging add-ons to stage safely and monitor performance without DevOps overhead