saulyte
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data β all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v15View latest version
A dense, mobile-first weather website designed for photographers to quickly check upcoming weather conditions with focus on cloud cover, visibility, and lighting conditions.
- π± Ultra-dense mobile design - Maximum information in minimal space
- β‘ Quick scanning - Color-coded hourly cards for instant condition assessment
- π Golden hour highlighting - Special glow effects for optimal lighting times
- π Photography scoring - 1-10 rating system based on cloud cover and visibility
- π Smart location - Auto-detects location with manual coordinate override
- π― Today highlighting - Special border for current day
- π Day summaries - Best times, golden hours, and average scores per day
- Sticky header with collapsible legend
- Dense hourly grid showing every hour in compact cards
- Touch-friendly hover effects and responsive layout
- Minimal scrolling with maximum information density
- Quick stats showing good hours count per day
Uses Open-Meteo KNMI API with official SDK:
- Hourly: temperature, cloud cover (total, low, mid, high), surface pressure, visibility
- Daily: sunrise, sunset times
- Timezone: Auto-detected
- Model: KNMI Seamless for high accuracy
βββ backend/
β βββ index.ts # Hono server with Open-Meteo SDK integration
βββ frontend/
β βββ index.html # Main page
β βββ index.tsx # Dense React app
β βββ style.css # Mobile-optimized styles
βββ README.md
The main endpoint serves the weather dashboard. The API automatically detects location or allows manual coordinates input.
- Photography Score: 1-10 rating based on cloud cover, visibility, and lighting conditions
- Golden Hour Detection: Automatically identifies optimal lighting times (Β±1 hour from sunrise/sunset)
- 7-Day Forecast: Hourly weather data for the next week
- Location Detection: Auto-detects your location or allows manual coordinate input
- Mobile Responsive: Works great on all devices
- Excellent (βοΈ): <20% cloud cover - Perfect for most photography
- Very Good (π€οΈ): 20-40% cloud cover - Great conditions with some interesting clouds
- Good (β ): 40-60% cloud cover - Good for dramatic skies
- Fair (βοΈ): 60-80% cloud cover - Overcast but workable
- Poor (π§οΈ): >80% cloud cover - Limited lighting options
- Golden Hour (π ): Special highlighting for optimal portrait/landscape times
GET /- Main dashboardGET /api/weather?lat={lat}&lon={lon}- Weather data with photography insightsGET /api/location- Auto-detect location from IP