## Inspiration
Existing weather APIs do a great job of providing raw environmental data but when building production applications, I found myself writing the exact same boilerplate: polling providers, isolating tenant data, scheduling background synchronization workers, and notifying users when conditions change. I wanted to provide those building blocks natively so that developers can stop reinventing the wheel and focus on building weather aware applications.
## What it does
Weatherpulse is a high performance Node.js weather API and multi tenant synchronization engine. It acts as a weather dashboard backend and alert engine that:
* Aggregates weather, AQI, and UV data from multiple providers.
* Synchronizes weather updates across multiple client dashboards simultaneously.
* Queues background jobs using rate-limited workers to prevent API exhaustion.
* Triggers event-driven alerts (like severe weather notifications or surge-pricing multipliers) based on changing conditions.
## How I built it
The core sync engine is written in TypeScript on top of Node.js and Express. I utilized Firebase (Firestore and Admin SDK) to handle real time multi tenant data isolation and client credential parsing.
To ensure the worker pool doesn't exhaust API limits or cause event loop starvation, I implemented an asynchronous worker queue. The frontend dashboard is built with React, Vite, and TailwindCSS for a highly responsive user interface. For telemetry and full stack observability, I integrated Sentry across both the Node.js backend and React frontend.
## Challenges I ran into
Handling synchronization for potentially thousands of tenants concurrently without getting rate-limited by external weather providers was a major hurdle. I had to design an asynchronous worker pool that spaces out requests while keeping dashboard latency to a minimum (averaging 250ms). also designing a secure way to dynamically fetch and isolate data based on individual tenant credentials required a very careful Firebase architecture.
## Accomplishments that I'm proud of
I successfully decoupled the raw polling of weather data from the actual client synchronization. By introducing the queue and the Firebase layer, I built an engine that can safely handle scaling multi tenant workloads without completely crashing or starving the Node event loop. having a flawless CI/CD pipeline and achieving 100% test passes gives me a lot of confidence in the platform's stability.
## What I learned
I gained deep insights into designing multi tenant architectures, managing Node.js background workers effectively, and using Sentry for pinpointing execution bottlenecks in asynchronous queues.
## What's next for Weatherpulse Sync Engine
I plan to introduce Kubernetes deployment manifests for enterprise scaling, integrate additional weather providers for better redundancy, and roll out an AI anomaly detection engine using Gemini to predict micro climate shifts.
Built With
- express.js
- firebase
- gemini
- github-actions
- node.js
- react
- sentry
- tailwindcss
- typescript
- vite
Log in or sign up for Devpost to join the conversation.