FjallWX

https://github.com/fjallwx


Welcome to the FjallWX home page.

The FjallWX project is a project by the fjall.net team. Its main purpose is to support the NWS Bots (see below). The code is public domain.

NWS Bots

The NWS Bots are almost identical mirrors of the Twitter NWS Tornado, Severe Tstorm and Flash Flood bots. However, they do not interact with the Twitter bots in any manner; they get their data from the source (the NWS API). Because of this, there are slight differences in the functionality. They also don't generate images of the warning polygons because text, although it may be limiting, can be shared faster and easier.

Bluesky

Project Goals

The goals of this project are to provide quick, easily accessible data to people in the path of a storm. Read the disclaimer.

About these tools (and a disclaimer)

These tools are just extensions of the National Weather Service's tools. None of these are "professional grade": what that means is you should not use these as your sole source of information, especially in a dangerous situation. They are meant for informational purposes only. They can be used for future reference, sharing, and following along with severe weather events as they happen.

Please refer to the National Weather Service for time-critical information. Time is the most valuable thing when your life is in danger.

Technical Details

The entire project is written with Go. This is because we believe it's the best tool for the job, especially in this case. As you can see in main.go, listeners.go, and router.go, having channels to pass information between the goroutines is extremely efficient and allows it to fire off posts as soon as it gets the warning while not hitting rate limits.

The project used to be split up into two parts, one for the NWS Tornado bot and one for the NWS Severe Tstorm bot. We soon realized that doing it this way was not as simple as we'd like, so we made it one big project with multiple parts internally.

It also used to be written in Rust, which was nice but seemed like overkill. As mentioned above, it wasn't as simple as we'd like, so we switched to Go. Even though Rust is fast, it's not as web/API-facing as this project demands.