推しアイデア
サボりが累積すると、登録した監視者に「密告メール」が自動送信される機能です。一人で完結しないからこそ、サボれない緊張感が生まれます。AIに裁かれるだけでなく、大切な人や知られたくない人にも見られているという外部からの強制力が、三日坊主を断ち切る鍵になっています。
サボりが累積すると、登録した監視者に「密告メール」が自動送信される機能です。一人で完結しないからこそ、サボれない緊張感が生まれます。AIに裁かれるだけでなく、大切な人や知られたくない人にも見られているという外部からの強制力が、三日坊主を断ち切る鍵になっています。
「明日やろう」で先延ばしにし、目標を立てても三日坊主で終わる。その原因は「サボっても自分以外にバレないから」だと考えました。第三者を強制的に巻き込み、サボりを外部に晒す仕組みを作れば、一人で抱え込まず続けられるはずだと考えこのアプリを作りました。
密告メールの送信基盤です。Resendの無料枠は第三者へのメール送信に制限があり、専用Googleアカウントを作りGASで自作APIを構築。React→Supabase Edge Function→GAS→専用Gmailの3段構成でどんな宛先にも制限なく届けられるようにしました。
Youtubeのリンク(Gemini APIを用いたデモ):https://youtu.be/HBorXi6esyM
すぐにスマホでプレイできるQRコード(ぜひカメラで撮ってプレイしてみてください!!):

概要
「サボり法廷」は、自分のサボり癖を静的なデータやAI(動的データ)に裁いてもらい、毎日少しずつ克服していく習慣化アプリです。ユーザーはまず治したいサボり癖(スマホ依存、運動不足、先延ばし、部屋の汚さなど)を複数選び、選んだ分野だけが毎日の出題対象になります。
毎日アプリを開くと、その分野の質問に答える → ガチャで「今日の課題」が決まる → 制限時間内に挑戦する → 写真で証拠を提出する(または文章で一言コメントを書く)、という一連のサイクルを繰り返します。証拠写真はAPIを利用する場合、AIが画像認識し、課題に対して妥当かを具体的な数値を基に判定します。
このアプリには3つの軸があります。一つ目は「運」。毎日のペナルティは裁判という名のガチャやおみくじによって、その日の課題や報酬が運に左右されます。二つ目は「緊張感」。サボりが累積すると、登録した監視者(親・上司・友人など)に自動で「密告メール」が送信されて、ゲーム性と程良いプレッシャーがあります。便利でありながら厳しい、この緊張感が自分への甘えを断ち切る仕組みになっています。三つ目は、自身の未来への"運用"で、人間力の向上が見込めます。この3つの軸で考えました。
なぜ作ったのか
「明日やろう」で先延ばしにしてしまう、アプリで目標を立てても三日坊主で終わる、というのはよくある話です。その原因は「サボっても自分以外の誰にもバレないし、特に罰則もないから」だと考えました。そこで第三者を強制的に巻き込み、サボった事実を外部に知らせる仕組みを作りました。一人で完結しないからこそ続けられる。さらに毎日の課題に「運」の要素を持ち込むことで、義務感だけでなく「今日は何が出るんだろう」というワクワクも両立させました。緊張感とゲーム性、この2つがこのアプリの根底にあります。
主要機能
サボり癖の選択 治したい癖を複数選び、選んだ分野だけが毎日の出題対象になります。自分が向き合うと決めたことだけに集中できます。
毎日の課題サイクル 質問に答える、ガチャで課題が決まる、制限時間内に挑戦する、写真で証拠を出す(または言葉で一言コメントを書く)、という一連の流れを毎日繰り返します。
レベルと運 ペナルティはレベル制で、連続成功で昇格し、失敗でリセットされます。どのレベルの課題が出るかは確率で変動し、ごく低確率で理不尽な激重課題も飛び出します(どんなペナルティかは出てからのお楽しみ♪)。
密告メール
サボりが累積すると(具体的な数値あり)、登録した通知者にメールが自動送信されます(叱ってあげてねというコメント付きで送信されます!!)。
以下のように通知が来ます!!

ポイントとおみくじ ペナルティをこなすとポイントが貯まり、ペナルティの引き直し(ペナルティレベルを下げられる!!)や救済(今日はお休みday!)に使えます。1日1回のおみくじで、運だめしとボーナスも楽しめます。
マイページ 成功率のグラフ、分野ごとの連続記録、これまでの履歴を振り返れます。
工夫した点
① 第三者への「密告メール」システム(技術的な山場)
このアプリの核です。新規登録時に「通知者(親・上司・友人など)」のメールアドレスを必須で登録させ、サボりが累積するとその相手に自動でメールが飛びます。
当初はメール送信サービスのResendを使う予定でしたが、無料枠には「事前に登録した自分のアドレスにしか送れない」という制限がありました。これでは第三者に密告できません。
そこでアプリ専用のGoogleアカウントを新たに作り、GAS(Google Apps Script)で自作のメール送信APIを構築しました。データの流れは、フロント(React)からSupabase Edge Function(中継)を経てGASに渡り、専用Gmailから送信される、という3段構成です。これにより、ユーザーが登録したどんなアドレスにも制限なくメールを届けられるようになりました。迷惑メールに振り分けられることもありますが、きちんと届くこともあります。
密告メールは、累積失敗回数が3の倍数(3回、6回、9回…)に達するたびに送信されます。本文には、それまでにサボったタスクが時系列ですべて列挙され、「○○さんが計3回タスクをサボっています! ぶちぎれてください🔥」という煽り文が添えられます(次会った時の会話のきっかけにもなっていいなと思います)。
② 課題レベルの確率変動システム
課題はテーマごとにレベル1〜3を持ち、連続成功で昇格します。失敗すると連続記録がリセットされ、レベル1に戻ります。
面白いのは、レベルが上がると出題される課題の確率が変動する点です。レベル2の項目なら60%でレベル2の課題・40%でレベル1、レベル3なら10%でレベル3・60%でレベル2・30%でレベル1、というように、難しい課題と簡単な課題が確率で入り混じります。さらに、ごく低確率で理不尽なペナルティ(出てからのお楽しみ♪)も飛び出します。この「何が出るか分からない」運の要素が、ガチャの楽しさを生んでいます。
③ ポイントと運(おみくじ)
課題を完了するとポイントが貯まり(1日最大3pt)、マイページ上部に表示されます。貯めたポイントは2つの使い道があります。ひとつはペナルティの引き直しで、1〜5ポイントを消費すると確率で課題のレベルを下げて楽にできます。もうひとつは50ポイントでの「無効化」で、ペナルティをやらずにその日は成功扱いにできる救済措置です。
おまけとして、1日1回引けるおみくじも実装しました。箱を3秒間振って棒を出す演出付きで、大吉から大凶まで、結果に応じてポイントと一言コメント(褒め言葉から悪口まで)がもらえます。振ったときには効果音も鳴ります。「自分自身の運」「人生の運」を、毎日のおみくじとガチャで体験できる設計です。
④ AIによる画像判定(APIを利用するver.)とBGM
証拠写真はAIが画像認識し、課題に対して妥当かを判定してコメントを返します。「解析している感」を出すための演出にもこだわりました。また、ガチャ画面や質問画面にBGMと効果音を導入し、没入感を高めています。
⑤ vercelによるデプロイで、スマートフォンでも使用可能
vercelを用いてデプロイしたため、スマートフォンでも使用可能になりました。バックグラウンドでもタイマーは動き続けるため(検証で確認済み)、そのまま画面を閉じたり他のアプリを開いていても継続して使い続けることができます!!
システム(技術スタック)
フロントエンドはReact(Vite)、スタイリングにTailwind CSS、アニメーションにFramer Motion、効果音にHowler.js。データ保存にSupabase(Postgres)、メール送信にGAS(Google Apps Script)経由の専用Gmail、AIに画像認識モデル( Gemini API)を使用しています。デプロイはVercelで、GitHubと連携して自動デプロイされます。スマホのブラウザからも利用できます。
開発で特にこだわったのは、外部サービス(AI・データベース・メール)への依存をスイッチで切り離せる構成にしたことです。これにより、APIキーがなくても全機能が固定データで動き、開発やデモが外部トラブルで止まらない設計になっています。
これから
今回は2日間で機能の土台を固めることを優先しました。今後は、他ユーザーとの比較、スクショして自慢できる成績表、たまごっちのように毎日育てる継続の仕組み、無料枠の配布による利用喚起など、「続けたくなる」「人に見せたくなる」要素を足していきたいと考えています。
アーキテクチャ図
