Why(背景) 朝は誰にとってもつらい時間です。 しかし実際には、
- 今日の予定は何時か
- 何時に家を出るべきか
- 雨は降るのか
- 電車は遅れていないか など、多くの情報を取得してからでないと行動できません。
特に関西の都市部では、乗り換えや遅延の影響が大きく、「あと5分寝られるかどうか」の判断が難しいのが現実です。
What(課題) 朝に必要なのは大量の情報ではありません。 必要なのはたった3つです。
- 何時に出るべきか
- 傘は必要か
- 今日何があるか
しかし現在は、複数のアプリを開いて確認する必要があり、眠い状態で判断を強いられることが課題でした。
How(解決)
- Googleカレンダーから予定を取得
- 予定の目的地から所要時間を自動計算
- 天気情報を取得
- それらをLLMで1文に要約
- 音声で読み上げ
することで、「寝たまま意思決定できる朝」を実現します!
朝の状況を1文で提示するダッシュボード型アプリです。
カレンダーに登録された予定の 場所(location) をもとに、現在地から目的地までのルートを検索し、
- 所要時間
- 乗り換え回数
- 出発推奨時刻
を算出します。
さらに天気情報を統合し、LLMが朝に必要な情報だけを抽出して要約します。
最終的には、「今日は10時から梅田。乗り換え2回、38分。9:12出発推奨。雨のため傘を。」というように、行動に直結する情報のみを提示します。
- 情報の網羅ではなく、行動に直結する3要素への抽出
- 予定の場所を活用したルート自動計算
- 朝の判断に必要な情報だけを上部に集約し、視線移動を最小化
- 大きな時刻表示を中心に、行動優先の情報階層を設計
- 「更新」ボタンと現在地入力を固定配置し、再取得操作を直感化
- モバイルでも見やすい余白・文字サイズを意識したダッシュボードUI
- Google OAuth でログイン状態を管理し、個人予定に安全にアクセス
- 予定・経路・天気を統合して、朝の意思決定を1画面で完結
- 失敗時のエラー表示や再操作導線を用意し、実運用時の復旧性を向上
- Cloudflare Workers + D1 + Workflows により、低運用コストで拡張しやすい構成を実現
Frontend
- Next.js (App Router)
- React
- TypeScript
- Chakra UI
Backend
- Cloudflare Workers
- Hono
- Better Auth(Google OAuth)
- Cloudflare Workflows
- Workers AI
- Cloudflare D1
外部API / データソース
- Google Calendar API(予定取得)
- Google Maps Routes API(移動時間の推定)
- Open-Meteo API(天気情報)
開発・運用
- pnpm
- Wrangler
- Biome
- GitHub Actions
- backend 環境変数と secrets の運用:
backend/README.md - frontend 環境変数の運用:
frontend/README.md
