>100 Views
March 19, 26
スライド概要
最新作SaaSもどきの失敗談についてのLT資料です
Student engineer
ゴミ捨てLINE通知SaaSを 作ろうとしたら 気づいたらCron SaaS作ってた話 「ちょっと便利なもの作るか」→ 地獄 2026
自己紹介 名前 : tanahiro2010 スタック : Next.js / TypeScript / PostgreSQL 趣味 : 内なる衝動に従い使われないSaaSもどきを作ること 今日の話 : その最新作(黒歴史)
事の発端 「ゴミの日、毎回忘れるんだよな……」 ↓ LINEで通知してくれるSaaSを作れば需要ありそう! ↓ 全県のゴミの日を調べるのは無理 → 自治体自主登録制に!
いざ開発スタート!(順調) ✅ フロントエンド完成 ✅ バックエンド / 登録エンドポイント完成 ✅ Cronのコールバックエンドポイント完成 🤔 あとはCronで定期実行するだけ……
あれ……? APIから動的にCronを設定できるサービス…… 存在しなくね? 「じゃあ……作るか」
Cron SaaS 爆誕 ユーザー Next.js API NeonDB Cronを登録 ジョブ管理 ジョブ保存 GAS Webhook 1分毎にポーリング 実行! GASが1分毎にAPIを叩いて期限のきたジョブを実行
完成! 動作確認にDiscord Webhookを設定してみる POST /api/jobs { "url": "https://discord...", "schedule": "0 8 * * *" … } 毎朝8時にDiscordへ通知が来る 🎉
1ヶ月後…… 「あれ?今日Webhookきてなくね?」 「バグった?ログ確認するか……」 「あっ……」
_人人人人人人人人人人人人_ > NeonDB の < 月間 CPU 実行時間制限  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄ GASが1分毎にリクエスト → DBが寝られない → Free tierのCompute Hours消滅。 容量的には問題ナッシング
何が起きたのか 原因 GASが1分毎にリクエスト → DBがAuto-suspendできない → NeonDB Free tier: 月500時間のCompute Hours上限に到達 対策 ① Neon有料プランへ移行($19/mo〜) ② DBをPlanetScale / Supabaseに乗り換え ③ GASのポーリング頻度を下げる(5〜10分) ④ Redis / キャッシュでDBへの直接アクセスを減らす
学び サーバーレスDBと常時起動ワークロードは相性が悪い Auto-suspendが売りのNeonに、1分毎のポーリングは致命的 "ちょっとしたもの"を作ろうとすると周辺ツールを作り始める ゴミ通知 → Cron SaaS。技術的負債どころか技術的迷子。なんなら途中からリクエストロガーも作ってた 本番前に制限事項は全部読もう ドキュメントの片隅に書いてある「500 compute hours/month」
まとめ 作りたいものを作ろうとすると 周辺ツールを作り始めて いつの間にか全然違うものができてる でも動いてたからヨシ!(1ヶ月だけ) ご清聴ありがとうございました