In my ongoing solo project OS Yamato, one of the more unusual apps is Hanaco Weather — a poetic weather SNS that lets users post thoughts tied to temperature, weather conditions, and time of day.
But here’s the fun technical part:
When you open the app, it fetches the real-time weather (via OpenWeatherMap API) and shows you messages from other users that match your current conditions — such as rainy mornings in Spanish, or snowy nights in Japanese.
Matching logic (simplified)
• It uses currentWeather.main, description, temperature, time of day, and language.
• Filters local DB messages (listWeatherComments) using:
• Weather match (e.g. “Clear”, “Rainy”)
• Temp range (±3°C)
• Time window (±1.5h)
• Language match (e.g. locale.value)
• Also pulls from iOS App data (via GraphQL endpoint) and merges results.
• Adds createdAtMs and sorts descending.
• All matching posts are shown in the main feed — beautiful short messages from strangers in similar weather.
tsuyoshi_k · 8h ago
Example
If it’s currently 18°C and cloudy in Tokyo at 9am:
• Hanaco fetches recent messages from other users where:
• weather = Cloudy
• temp ≈ 18°C
• timeOfDay ≈ 9am
• language = ja
→ The result: You get messages that feel relevant — weather-wise and emotionally.
But here’s the fun technical part: When you open the app, it fetches the real-time weather (via OpenWeatherMap API) and shows you messages from other users that match your current conditions — such as rainy mornings in Spanish, or snowy nights in Japanese.
Links Try it: https://hanaco875.com Code: https://github.com/osyamato/os-yamato
If it’s currently 18°C and cloudy in Tokyo at 9am: • Hanaco fetches recent messages from other users where: • weather = Cloudy • temp ≈ 18°C • timeOfDay ≈ 9am • language = ja → The result: You get messages that feel relevant — weather-wise and emotionally.
⸻
Tech Stack • Frontend: Vue 3 (Composition API) • Backend: AWS Amplify (GraphQL + Cognito) • Weather API: OpenWeatherMap • Realtime UI and multilingual support (ja, en, es, zh)