推しアイデア
「日程調整」と「相談」と「決定」をひとつの場所で完結!
「日程調整」と「相談」と「決定」をひとつの場所で完結!
LINEで候補を投げ合うと、メッセージが流れて誰がどの日OKなのか分からなくなる
モダンなフロントエンド 責務を混ぜないバックエンド
友達やグループで「次いつ・どこで集まる?」を決めるためのアプリです。
名前の HangWat は、"Hang out"(集まる・遊ぶ)と "What / When"(何を・いつ)をくっつけた造語。集まりたい気持ちはあるのに、肝心の「いつ」が決まらないを片付けるのが狙いです。
アプリの世界は3つの登場人物でできています。
ログイン → ホーム → イベント作成 → イベント詳細 → 各候補枠の詳細 と、まさにこの流れに沿って並んでいます。
推したいのは、「日程調整」と「相談」と「決定」をひとつの場所で完結させたところ。
日程を出し合うのを全てLINEで行うと最終的な情報があちこち散らばって、結局「あれ、何時集合だっけ?」が起きる。
HangWat はそこを一本にまとめています。候補の時間枠を出して、その枠ごとにコメントで会話して、納得したらそのまま決定する。EventTimeline(候補のタイムライン表示)と CommentList(コメント一覧)が同じイベントの中に同居していて、「相談しながら決める」体験がそのまま画面になっているのがポイントです。
候補を1つずつ深掘りできる events/[eventid]/slots/[slotid] という階層もいい仕事をしていて、「この枠についてだけ話したい」がちゃんとできる。ざっくり全体を眺めるビューと、1枠を掘り下げるビューが分かれているのは、地味だけど実際に使うと効いてくる設計だと思います。
グループで遊ぶ約束って、毎回だいたい同じところでコケます。
この「乗り気なのに前に進まない」を技術で溶かしたい、というのが出発点に見えます。だから HangWat は単なる○×の出欠表ではなく、候補・会話・決定を地続きにした。集まりが流れずにちゃんと実現することそのものをゴールに置いているわけです。



Next.js 16 / React 19 / TypeScript / Tailwind CSS v4。出たばかりのバージョンを攻めています。App Router を素直に使い、page.tsx は薄く保って、ローディングやエラーは loading.tsx / error.tsx といったフレームワークの作法に乗せる。
*機能ごとに区切ったディレクトリ設計**にしてます。features/auth、features/events の下を components(見た目)/ data(API通信)/ services(機能固有の判断)/ types(型)にきっちり分けていて、「画面からAPIレスポンスを直接触らない」とまでルール化されています。
Hono + TypeScript + Prisma + PostgreSQL。presentation → application → domain + infrastructure という、クリーンアーキテクチャの層分けを採用。「HTTP・ユースケース・ドメイン・DB実装を混ぜない」と明文化されています。
軽量な Hono にこの構造を載せているので、速くて、かつ後から育てやすい。短期開発で"動けばいい"に逃げず、層の責任を守ったのは技術力とチーム規律の両方が出ています。
pnpm workspace のモノレポ … front / backend をひとつのリポジトリでまとめて管理
Docker Compose … docker compose up --build でDB・API・フロントが一発で立ち上がる
OpenAPI / Swagger UI … /docs で API 仕様をそのまま確認でき、/openapi.json も配信
ヘルスチェック … /health でバックエンドとDB接続の生死を確認
Prisma Studio … ブラウザからDBの中身を覗ける
CI・git hooks・PRテンプレート … .github や .githoocks、docs/development/ 配下にコミット規約やPRルールを整備
AIエージェント運用の整備 … CLAUDE.md / AGENTS.md で「日本語で回答」「作業前にブランチ確認」「層を混ぜない」などのルールを明文化し、PR作成スキルまで用意。
レビューをしっかりと軽減 coderabbit を搭載してPRのファーストレビューを担当させています。
既存の日程調整サービスの多くは、「空いている日を集める」ことに特化しています。しかし実際には、日程が決まった後も
といった相談が続きます。
HangWatでは、
までを一つの流れとして設計しました。
単なる出欠管理ツールではなく、「グループの意思決定を支援するサービス」を目指したことが大きな挑戦です。
一般的なチャットアプリでは、すべての話題が同じタイムラインに流れてしまいます。
HangWatでは、
イベント ├─ 候補A │ └ コメント ├─ 候補B │ └ コメント └─ 候補C └ コメント
という構造を採用しました。
これにより、
といった議論を候補単位で整理できます。
情報が埋もれず、スムーズに合意形成を行えるよう工夫しました。
短期間開発では「とりあえず動けばよい」という実装になりがちです。
しかしHangWatでは、
を整備し、開発終了後も継続して改善できる構成を目指しました。
短期開発と長期運用の両立に挑戦した点も大きな特徴です。
HangWatでは候補日時を、
という状態で管理します。
これはGitHubの
という開発フローから着想を得ています。
開発者にとって馴染みのある体験を予定調整に取り入れることで、少しだけワクワクするUIを目指しました。
一般的なカレンダーアプリは予定を登録したら終わりです。
一方HangWatでは、
という過程そのものを重視しています。
予定を入力するためのツールではなく、みんなで予定を作り上げるためのツールとして設計しました。
現代では、
によって、
「遊びたい気持ちはあるのに予定が決まらない」
という状況が頻繁に発生しています。
結果として、せっかくの交流機会が失われてしまうことがあります。
HangWatは、
を一つの場所にまとめることで、
といった社会的価値を生み出します。
さらに、
などへの展開によって、サービスとしての価値も創出できます。
HangWatは単なるスケジュール調整アプリではない!
「集まりたいのに集まれない」という摩擦を減らし、人と人とのつながりを生み出すことを目指しています。
人々の交流機会を増やすという社会的価値と、サービスとしての成長という経済的価値の両立を実現することで、CSV(Creating Shared Value)の考え方を体現しています。
HangWatは、日程を決めるアプリではなく、「みんなで集まる」を実現するための意思決定プラットフォームです。
候補・会話・決定をひとつにまとめ、人と人とのつながりを生み出すことで、CSV(Creating Shared Value)の実現を目指しました。