Core functionality stable | UI actively evolving | Live Demo
Self-hostable weather dashboard with AI-powered insights, 10-year climate analysis, and interactive radar maps.
Built by Michael Buckingham | Inspired by Weather Spark
Coming Soon - Full UI/UX redesign and refactor in progress.
Check out the live demo to see the current interface in action!
- π€ AI-First Interface - Ask weather questions in plain English ("Will it rain this weekend?")
- π Deep Climate Analysis - Compare cities with 10 years of historical data
- π§οΈ Real-Time Radar - Interactive precipitation maps with 2-hour history
- βΏ Accessible to All - WCAG 2.1 Level AA compliant, full screen reader support
- π Production-Grade Code - Learn from real-world React + Node.js patterns
- π Security First - 9.4/10 score, 0 vulnerabilities, automated scanning
- π§ͺ Well-Tested - 476/476 tests passing, comprehensive coverage
- π Comprehensive Docs - 80+ organized guides covering everything
- π³ Docker One-Command - Get running in 3 minutes
- π° Free to Run - $0/month with free API tiers (1,000 requests/day)
- π Minimal Resources - Runs on $6/month VPS (2GB RAM, 1 CPU)
- π Your Data - No telemetry, no tracking, full control
Get up and running in 3 minutes with Docker:
# 1. Clone the repository
git clone https://github.com/mbuckingham74/meteo-weather.git
cd meteo-weather
# 2. Copy environment file and add your API keys
cp .env.example .env
# Edit .env - Add your FREE Visual Crossing API key
# 3. Start the application
docker-compose up
# 4. Open in browser
# Frontend: http://localhost:3000
# Backend API: http://localhost:5001That's it! The app starts with pre-populated data for 148 cities.
- Visual Crossing (required) - Sign up here - 1,000 records/day free
- OpenWeather (required for radar) - Sign up here - 1,000 calls/day free
- Anthropic Claude (optional, AI features) - Sign up here - Pay-as-you-go (~$0.01/query)
No API keys yet? The app works out of the box with cached data for major cities!
β Full Setup Guide
- π€οΈ Multi-day forecasts - 3, 7, or 14-day forecasts with hourly breakdowns
- π 15+ interactive charts - Temperature, precipitation, wind, UV, humidity, and more
β οΈ Real-time weather alerts - Severe weather warnings with map markers- π¨ Air quality monitoring - Live AQI with 6 pollutant measurements
- π§οΈ Interactive radar map - Real historical precipitation data with animation
- π€ AI Weather Assistant - Natural language queries powered by Claude Sonnet 4.5
- π Smart Universal Search - One input for locations AND AI questions
- π 10-year climate analysis - Historical trends and statistical insights
- π Location comparison - Compare weather across 2-4 cities side-by-side
- π Weather Twins - Find cities worldwide with similar current weather (NEW!)
- π€ AI location finder - Describe your ideal climate, get recommendations
- π User accounts - Cloud-synced favorites and preferences across devices
- π¨ Theme system - Light, dark, and auto modes with full component coverage
- βΏ Fully accessible - WCAG 2.1 Level AA, keyboard navigation, screen readers
- π± Mobile responsive - Optimized for all device sizes
- π Shareable URLs - Direct links to any city's weather
- βοΈ User preferences - Email notifications, report scheduling, customization
- β‘ 99% cache hit rate - MySQL-based caching, 282x faster responses
- π Security score 9.4/10 - 0 vulnerabilities, automated scanning
- π³ Docker ready - One-command deployment
- π Minimal footprint - Runs on $6/month VPS
β Complete Feature List | Live Demo
All documentation is organized in the docs/ folder:
| Category | Description | Link |
|---|---|---|
| π Getting Started | Quickstart, architecture, onboarding | View β |
| π‘ API Reference | Complete API docs (3 formats) | View β |
| π§ Development | Code guides, conventions, branching | View β |
| π Deployment | Production deployment guides | View β |
| π Security | Security features & audits (9.4/10) | View β |
| βΏ Accessibility | WCAG Level AA compliance docs | View β |
| βοΈ CI/CD | Pipeline optimization & guides | View β |
| πΎ Database | Schema, ERD, optimizations | View β |
| π¨ UI/UX | Design system & guidelines | View β |
| Common issues & solutions | View β |
Most Popular:
- π― 3-Minute Quickstart
- π‘ API Reference (with OpenAPI & Postman)
- πΊοΈ Product Roadmap
- π€ Contributing Guide
- π Security Policy
- β FAQ & Support
β Browse All Docs
APIs: Visual Crossing Weather, OpenWeather, RainViewer, Claude AI, Open-Meteo Air Quality
Recommended for development:
- CPU: 1-2 cores (2 GHz+)
- RAM: 2 GB minimum, 4 GB recommended
- Storage: 10 GB free space
- OS: Linux (Ubuntu 20.04+), macOS, or Windows with WSL2
Production: Successfully tested on DigitalOcean $6/month droplet (1 vCPU, 1 GB RAM)
What you need installed:
- Docker (20.10+) and Docker Compose (1.29+)
- Git - for cloning the repository
Security Score: 9.4/10 - Enterprise-grade security with 0 vulnerabilities
- β Gitleaks Secret Scanning - Pre-commit hooks + GitHub Actions
- β Dependabot Monitoring - Automated vulnerability detection & patching
- β npm Security Audits - Regular dependency scanning
- β CodeQL Analysis - Automated code security scanning
- β Rate Limiting - Protects against abuse and API cost overruns
- β Security Headers - CSP, HSTS, X-Frame-Options, etc.
Current Status:
- 0 vulnerabilities in production dependencies
- All 9 historical vulnerabilities patched
- Weekly automated security scans
- Automated Dependabot PRs for security updates
β Security Documentation | Security Policy
Accessibility Score: 8.5-9/10 - Full WCAG 2.1 Level AA compliance
- β WCAG 2.1 Level A - Foundation accessibility
- β WCAG 2.1 Level AA - Enhanced accessibility (target standard)
- β WCAG 2.1 Level AAA - Animation control (bonus)
- π― Screen reader support - NVDA, JAWS, VoiceOver tested
- β¨οΈ Complete keyboard navigation - All features accessible via keyboard
- π¨ Color contrast - 4.5:1 minimum ratio throughout
- π¬ Motion control - Respects prefers-reduced-motion
- π Focus indicators - Visible 3px purple outlines
- π¬ Error suggestions - 200+ contextual recovery hints
β Accessibility Audit | WCAG Compliance
We welcome contributions! This project follows GitHub Flow for a simple, effective workflow.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'feat: add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request (CI must pass before merge)
- π Bug fixes
- β¨ New features
- π Documentation improvements
- π¨ UI/UX enhancements (especially needed!)
- βΏ Accessibility improvements
- π§ͺ Test coverage increases
β Contributing Guide | Branching Strategy | Code of Conduct
Good First Issues: View on GitHub
Recent Achievements:
- β Express 4 β 5 migration (Nov 2025)
- β WCAG 2.1 Level AA compliance (Nov 2025)
- β CI/CD optimization - 50-70% faster (Nov 2025)
- β Database performance - 20-50x faster queries (Nov 2025)
- β User-managed API keys for 7 AI providers (Nov 2025)
Planned Features:
- π§ Email notifications for weather alerts
- π± Mobile app (React Native)
- π Multi-language support (i18n)
- π Extended historical data (20+ years)
- π°οΈ Satellite imagery overlays
- πΎ Pollen and allergen forecasts
β Full Roadmap | Open Issues
MIT License - See LICENSE for details.
Feel free to use this project for learning, development, and production!
Data Providers:
- Weather data: Visual Crossing Weather API
- Radar data: RainViewer API
- Map overlays: OpenWeather API
- Air quality: Open-Meteo Air Quality API
- AI: Anthropic Claude
Inspiration:
- Visualizations inspired by Weather Spark
- π Documentation
- β FAQ & Support
- π Report a Bug
- π‘ Request a Feature
- π¬ GitHub Discussions
Built with β€οΈ by Michael Buckingham
β Star on GitHub | π View Live Demo | π Read the Docs