Back to Blog

I built an app that notifies me when there's a fire nearby

·5 min read

This morning I heard sirens. Not unusual in a big city, but because we're expecting high temperatures for the next few days (higher than usual) my mind wandered the way it does on a quiet morning: sirens, then fire trucks, then it's nearly fire season again, then the specific, grim memory of summers when a fire somewhere nearby fills the house with smoke and you don't notice until the smell is already everywhere.

I don't know if anyone else feels the same, but I really dislike having my apartment smelling like smoke. And by the time you smell it, you've lost. So the thought that actually stuck with me was a question: could something just notify me when there's a fire nearby, in time to close the windows?

In Portugal we're lucky to have Fogos.pt, a long-running project built and kept alive by volunteers, that tracks active wildfires in near real time from civil-protection data. I've used their map for years during bad summers, and whenever I smell smoke. But this morning got me thinking: do they have an API, and if so could I use it to be notified of fires nearby?

They do, and so I spent the morning building the plumbing.

What it does

Every ten minutes, a small program wakes up, asks Fogos.pt which fires are currently burning, and works out how far each one is from my house. If anything is burning inside a radius I set, my phone buzzes:

🔥 Fire XX km from home
<Place-Where-There's-A-Fire>
Status: Developing
Resources: XX firemen, XX aircraft
Distance: XX km

Source: Fogos.pt

That's the whole product. No app to open, no map to remember to check. Just a nudge that says: go close the windows.

Because Fogos.pt is run by volunteers and offered for free, the fastest way to get yourself blocked (and to be a bad guest) is to hammer someone's free service every few seconds. As such, I decided from the start that the app (not sure what to call it) should not call the API every few seconds. A wildfire doesn't sneak up on you in sixty seconds anyway; so I made it check for fires every ten minutes. This gives me all the lead time I need and stays gentle on their servers.

How it reaches me

I didn't want to build and publish a whole website for something only I use. So I used ntfy, a small service that turns a notification into a single web request. My program publishes a message, my phone is subscribed, and the buzz arrives a second or two later.

And the part I like the most about this idea is this: distance isn't the whole story about having your house filled with smoke. You also have to think about wind. A fire ten kilometres away that's blowing away from me is not my problem. The same fire blowing toward me very much is. So the program also checks the current wind direction using a weather API I've had an account with for years, and only nags me when the smoke is actually heading my way. That's the gap between "there's a fire somewhere" and "this one is coming for your living room."

The part I'm oddly proud of

I'm a technical writer, not a software engineer. I build these things by directing an AI agent: I describe what I want, weigh the trade-offs it puts in front of me, and decide what's worth doing. Right now, I feel like having an AI helper is like having Legos that I'm using to build stuff to solve those little nagging things that affect me, and that otherwise I probably wouldn't be working on.

I know I keep saying I'm not an engineer, but I'm oddly proud of everything I learned about AI agentic coding. And that's why after the thing worked, I set a second AI agent loose on the first one's code and told it to be hostile: assume the code is wrong, go find the proof. It found a real bug. In one of the wind cases, a fire that first showed up blowing away from me could get quietly filed as "already handled," so that if the wind later turned toward the house, I'd never hear about it. The exact moment I'd most want to know. We fixed it, then wrote a small test to make sure it stays fixed.

That makes me happy, in a way I didn't expect. The tools aren't infallible, but you can always apply what I've been doing for writing for years: a careful, grumpy second pass catches what a confident first draft sails right past.

Software for one

This won't be on an app store or the web. It cost nothing to run and serves exactly one household. It solves a small, seasonal annoyance that no commercial product was ever going to touch, because the market for "tell Márcio to close his windows" is one person.

That's the part I keep getting back to: The barrier to making small, personal software (the kind that fixes one irritation in your own life) has quietly fallen away. An idea you have over morning coffee can be running on your phone by lunch.

Fire season is coming. This year, I'll get a heads-up. And full credit where it's due: none of this would be even remotely possible without the people behind Fogos.pt, who do the hard part of gathering the data and give it away. I just pointed it at my windows.