🚧 SERVICE TEMPORARILY UNAVAILABLE
The production site at mklat.news is temporarily down due to API access restrictions from cloud providers.
We're working on a mobile app solution. In the meantime, you can still run the service locally - it works perfectly from your local machine!
See instructions below for local setup.
⚠️ IMPORTANT DISCLAIMER
This project is for educational and development purposes only. Do NOT use this as your primary source for emergency alerts. Always rely on official government channels and approved alert applications for life-safety information.
Use the official Tzeva Adom app, OREF website, or other certified emergency systems for actual emergency notifications.
A real-time web application that aggregates Israeli news from multiple sources (Ynet, Maariv, Walla, Haaretz) and Homefront Command alerts with comprehensive historical data and location filtering.
- Real-time Updates: WebSocket connections with instant push updates (2-second server polling)
- Alert History: Comprehensive timeline showing both active alerts (🚨) and historical events (📍)
- Location Filtering: Dynamic location selector with search and bulk operations
- Dual Data Sources:
- Ynet breaking news RSS feed
- Israeli Homefront Command current alerts
- OREF historical alerts with event timeline
- Modern UI: Responsive design with Hebrew RTL support and status indicators
- Smart UX: Clear active alert status, intuitive location picker with OK button
- Caching: Server-side caching to reduce API calls
- Error Handling: Graceful fallbacks and error messages
-
Install dependencies:
npm install
-
Start the server:
npm start
-
Open in browser:
http://localhost:3000
Run with auto-reload:
npm run dev
GET /api/ynet
- Fetch latest Ynet breaking newsGET /api/alerts
- Fetch current and historical alerts (combined timeline)GET /api/alert-areas
- Fetch available alert locationsGET /api/health
- Health check endpoint
├── server.js # Express + WebSocket server with real-time data polling
├── public/
│ ├── index.html # Main HTML page
│ ├── style.css # Styles with RTL support
│ └── script.js # Frontend with WebSocket client + fallback polling
└── package.json # Dependencies and scripts
- Backend: Polls OREF/Ynet APIs every 2 seconds, broadcasts changes via WebSocket
- Frontend: Receives instant WebSocket updates with automatic fallback to 3-second polling
- Connection Status: Visual indicator shows real-time/polling/offline status
- Resilience: Automatic reconnection with exponential backoff
- Ynet RSS:
https://www.ynet.co.il/Integration/StoryRss1854.xml
- Current Alerts:
https://www.oref.org.il/warningMessages/alert/Alerts.json
- Historical Alerts:
https://alerts-history.oref.org.il/Shared/Ajax/GetAlerts.aspx?lang=he
- Alert Areas:
https://alerts-history.oref.org.il/Shared/Ajax/GetDistricts.aspx?lang=he
- Fallback Alerts:
https://api.tzevaadom.co.il/notifications
All data comes directly from official Israeli government sources with real-time updates.
- ✅ Real-time WebSocket updates with fallback polling
- ✅ Historical alert timeline with OREF integration
- ✅ Location-based alert filtering with intuitive UI
- ✅ Active alert status indicators
- ✅ Responsive design with Hebrew RTL support
- ✅ Comprehensive test coverage (90% success rate)
- ✅ CI/CD pipeline with automated testing
- ✅ Error handling and graceful degradation
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- 🐛 Bug Reports: Use our issue templates
- ✨ Feature Requests: Check existing issues first
- 🤝 Pull Requests: Follow our PR template
- 🆘 Good First Issues: Look for
good first issue
label
MIT License - see LICENSE file for details.
Modern browsers with ES6+ support.