StormCast is a customizable smart photo frame and weather display built with Node.js, TypeScript, and a Raspberry Pi touchscreen.
It combines local photo slideshows with live weather data, radar images, and more — making it a beautiful and functional addition to your home or workspace.
- Image Slideshow: Add photos by sending them to your email address
- Weather Station: Real-time weather data with imperial units (°F, mph, inHg)
- Touch-Friendly UI: Modern interface built with Tailwind CSS
- Auto-Updates: Automatic email checking and weather updates
- System Status: Monitor email and weather service connections
-
Install dependencies:
npm install
-
Create directories:
npm run setup
-
Configure environment:
- Copy the
.envfile and update with your credentials - Get an API key from OpenWeatherMap
- Set up email app password for Gmail
- Add your NOAA location
- Copy the
-
Build and start:
npm run build npm start
For development:
npm run dev
- Enable 2-factor authentication on your Gmail account
- Generate an app password for the application
- Use the app password in the
EMAIL_PASSWORDfield
- Adding Images: Send photos as email attachments to your configured email addresses with the subject line you specified, default is 'slideshow'
- Slideshow Controls: Touch/swipe to navigate, or use the control buttons
- Auto-Play: Slideshow automatically advances every 10 seconds
- Weather: Updates every 10 minutes with current conditions
GET /api/weather- Current weather dataGET /api/images- List of available imagesGET /api/status- System status informationGET /api/radar- Radar data
- Designed for 10.1" touchscreen displays (1024x600)
- Optimized touch controls and gestures
- Automatic image cleanup to prevent storage issues
- Low-power operation suitable for continuous use
See the .env file for all configuration options including:
- Email credentials and settings
- Weather API configuration
- Display and timing preferences
- Radar location