LINE で動くミニアプリを個人開発した記録 — 構想・収益モデル・技術スタック選定の裏側

LINE ミニアプリ開発記 第 1 回

#個人開発#LINE#LIFF#Next.js#Firebase#AdSense

個人開発をしていると、ある日「これは LINE に乗せたほうが速いんじゃないか」と気付く瞬間があります。私の場合、Android ネイティブアプリの実装が 8 割ほど終わっていたところで、ストア審査と配信負荷を改めて見積もり直して、結局すべて捨てて LINE LIFF に作り直す判断をしました。

本記事はその「ピボット」の裏側を、構想・収益モデル・技術スタック選定の 3 軸でまとめます。同じく個人で何かを公開したい人にとって、判断のたたき台になれば嬉しいです。

状況・前提

ピボットの判断

Android で完走するコスト

Android のままでもアプリ自体は動かせる状態でした。それでも捨てた理由は 3 つです。

[1] ストア審査の重さ
    └─ 個人開発者の Play デベロッパーアカウント要件が年々厳しくなっている
       └─ アプリ公開までに本人確認・テスター 12 名以上の運用が必要

[2] 配信・更新の摩擦
    └─ アプリの存在を知ってもらってもインストール導線が長い
       └─ 「LINE で友だち追加してすぐ使える」と勝てない

[3] 収益設計の難しさ
    └─ Play Billing の手数料 30% を払いつつ、AdMob で広告を出す構成は重い
       └─ 個人で運用する規模だと固定費に対してリターンが弱い
          ★ LINE 上で動かして AdSense 一本のほうが、固定コストも審査も軽い

3 つ目の収益設計が一番効きました。Android の有料機能で月数千円が見込める世界より、ブラウザ上で AdSense を貼った数千 PV の世界のほうが、私の想定する規模では現実的でした。

LINE LIFF を選んだ理由

選択肢は 3 つありました。

候補メリットデメリット私の評価
PWA + 自前ドメイン配信自由度が高い、規約を気にしなくてよい集客導線がゼロ、リマインダーが Web Push 頼み△ 集客が重い
Web ブラウザ + Twitter / メルマガ集客立ち上がりが軽いリマインダーが弱い△ Push できない
LINE LIFF + 公式アカウント友だち追加で完結、Push が確実、ブラウザ機能はそのまま使えるLINE プラットフォームに依存、Push の月間上限あり◎ 採用

決定打は 「Push 通知が確実に届く」 の 1 点でした。リマインダーが本機能のアプリだと、Web Push ではなく LINE Messaging API のほうが体感の信頼度が桁違いに高いです。LINE 公式アカウントのフリープラン(コミュニケーションプラン)は 月 200 通まで無料 で、超過分は配信不可。これも、ターゲット規模を考えれば最初は十分という判断でした。

収益モデル: AdSense 一本に絞る

長く悩んだのが収益モデルです。最終的には AdSense 主軸、買い切り課金は将来検討 に絞りました。理由はこれです。

ただし AdSense は コンテンツの厚みがあるドメインのほうが審査を通りやすい という肌感覚があります。LIFF アプリ単体では情報量が薄いので、トップドメインに技術ブログ(この連載がそれです)を貯める運用のほうが現実的、という判断です。

もうひとつ大事な点として、Vercel Hobby は 広告を含むデプロイを商用利用と定義 しており、AdSense は明示的に商用例として挙げられています。これを避けるため、構成は LIFF 本体(広告なし)= Vercel Hobby、ブログ + AdSense = Cloudflare Pages の二段ホスティングにしました。サブドメイン (app.既存ドメイン.xxx) と トップドメイン (既存ドメイン.xxx) でホスト先が違う、という形です。両方ともドメイン代以外の追加コストはかかりません。

技術スタック選定

最後にスタック。1 人で書ききれる前提で、よく知っている道具と、無料枠が太い道具を組み合わせました。

採用理由
LIFF フロントエンドNext.js 15.5(App Router)慣れている、SSR/SSG/CSR の混在が楽、Vercel との相性
LIFF ホスティングVercel Hobbyプレビュー環境が無料、独自ドメイン接続が楽。広告は貼らない前提
ブログ用 SSGAstroコンテンツ重視、ビルドが速い
ブログ ホスティングCloudflare Pages帯域無制限、商用利用 OK、AdSense と相性問題なし
認証Firebase Auth + LINE Custom TokenLIFF の ID トークンを 1 回検証して以降は Firebase Auth セッション
データFirestoreスキーマレスで個人開発に向く、無料枠が広い
サーバーロジックCloud Run functions(旧 第 2 世代 Functions)Webhook と cron だけならこれで十分
通知LINE Messaging APIPush の信頼性が高い
通知のトリガCloud Scheduler → Cloud Run functionsFirebase の cron として標準
収益Google AdSenseトップドメインのブログに貼る(LIFF 本体には貼らない)
ドメインお名前.com で取得済みのドメイン追加コストなし

選定基準を 1 行でまとめると、「個人で運用するために、無料枠の合計と運用工数の少なさで選ぶ」 に尽きます。技術的に尖ったものを選ぶより、各層で最も「飽きない・忘れない」道具を組むほうが、半年後の自分が困りません。

学び・余談

ピボットを決めるとき、Android で書いたコードが惜しいという気持ちは正直ありました。それでも捨てたのは、AI と壁打ちを繰り返して、理想と現実のギャップを徹底的に詰めた からです。「公開までに何ヶ月かかるか」「個人で払い続けられる固定費はいくらか」「半年後に自分が触り続けたいスタックはどれか」を質問形式で投げ、返ってきた答えにさらに「それは私の状況だと本当か」と突っ込み返す、というやり取りを 1 時間ほど続けました。終わってみると、残す理由よりも進む理由のほうが圧倒的に多くて、悩みが目に見えて消えました。判断に迷ったら自分の頭の中だけで回さずに、対話の場に出して引き伸ばす、というのが個人開発で得た数少ない教訓のひとつです。

連載の次回は、ここで選んだスタックを実際に 月額 0 円 で運用するためのアーキテクチャ全体図を書きます。

関連記事


← ブログ一覧へ