Qiita Advent Calendar 2021 個人開発 3日目の記事です。
みなさん、今日も楽しく個人開発やってますか? 個人開発は「楽しい」し「スキルアップ」できるし「夢(収益が出れば...)」もありますよね!
2021年9月、僕は友人とふたりでspaces.bz(クローズ済み)をリリースしました。 合言葉は「なるべく無料で...」。 そう、個人開発には潤沢な資金はありません! リリースしたはいいけどランニングコストだけかかって全然使われないは避けたいのです!
実際、spaces.bzは2021/12/3現在、支出は最初のドメイン代の3,000円のみです。 一方で、PV数は12000+/月、Twitter Botのフォロワー数は1,000+、それなりに利用してもらっているサービスになりました🎉。
この記事では、spaces.bzがランニングコスト0で運営するためにとってきた戦略を紹介します。 お金が心配で個人開発やリリースをためらっている人たちの背中を押せれば嬉しいです😁。
spaces.bz とは?
今回開発をしたspaces.bzは、Twitter Spacesを検索したり、ランキングをまとめたりしているサイトです。 サイトの他にも、リスナー数の多いスペースをリアルタイムでお知らせするTwitter Botも提供しています。
spaces.bzは現在、月間12,000+PVくらいのプロダクトです。 毎日コンスタントにアクセスしていただいており、Botも2021年11月末現在で1,000+のフォロワー、僕たちとしてはちゃんと使ってもらえている実感を持てておりそこそこの達成感を得ています。
コストとしては、最初に友人こだわりのドメインを購入しているので3,000円がかかっていますが、その他はコスト0で運営しています(僕たちの開発費はプライスレス)。
全体のアーキテクチャは次のようになっています。
では、実際にどんなことを考えてspaces.bzをランニングコスト0で開発してきたのか、語っていきます。
戦略1:データを持たないプロダクト
僕たちが一番ネックに感じていたことが「データ」です。 なんとなく、ホスティングサービスに比べてデータベース系のサービスはちゃんと気をつけないと無料枠をすぐに食いつぶしてしまうイメージがあったんですよね。 データがないと面白いアイデアになりにくいと感じつつも、お財布を気にせずデータを保存する方法もあまり思いつかなかったからです。 そこでspaces.bzはAPIを活用するプロダクトの戦略をとりました。 APIであれば提供元のデータを活用して面白いことがやりやすそう、ってことです。 ちょうどTwitter社が2021年8月にTwitter SpacesのAPIを公開したこともあり、これを使って何か面白いことができないかと考えていったものがspaces.bzです。
Twitter APIは無料でも利用可能ですが、単位時間あたりのリクエスト数やツイート取得数に制限があります。 その制限の中でやりたいこととできそうなことのバランスをとりながらプロダクトを作ってきました。
Rate limits | Docs | Twitter Developer Platform
戦略2:みんなが使っているサービスの拡張プロダクト
戦略1の付随効果ですが、spaces.bzは多くの人が使っているTwitterを拡張するプロダクトになったことで独立したサービスよりも早い段階でユーザーを獲得できました。 個人開発をしていて結局使われない...なんか変なところでお金かかるのも怖いから閉じよう...ってなることもあります。 その文脈ではすぐに見つけてもらい使ってもらうことができたことは個人開発をここまで継続できたモチベーションでした。
戦略3:無料でホスティング with Vercel
プロダクトを開発したらどこにホスティングするかは重要なテーマです。 spaces.bzは現在 Vercel を利用しています。 個人利用では無料でホスティングができ、GitHubと連携することでpushを検知してBuild&Deployまでやってくれます。クレカ登録不要なのも何気に嬉しい😆。 もともとは Netlify にホストしていたんですが、動的OGPをやりたいとなったときにSSGができるVercelに移行しました。(Netlifyでもpre-renderingを使って動的OGPをやる方法があるみたいですが、Netlifyはビルドの時間制限もあり移行を決行しました)
他にも GitHub Pages や Heroku など、無料枠でも十分にホスティングできるサービスが充実しています。Build&Deployまでしてくれるサービスが多いですし、いろいろと調べて試して、自分のプロダクトにあったホスティングサービスを利用すれば、無料でプロダクトをリリースすることは難しくありません。
戦略4:無料でデータ管理 with Spreadsheet
戦略1と矛盾するのですが...笑。 spaces.bzでは最初こそTwitter APIを叩くだけのプロダクトでサービスリリースをしました。 しかし、開発を重ねていく中でどうしてもTwitter APIを叩くだけでは実現できないやりたいことがでてきました。 最初に行ったとおり、データベースサービスの無料枠でやりくりできるか不安があったため、spaces.bzがとった戦略はGoogle Spreadsheetをデータベース代わりに使うことでした。
Spreadsheetにも5,000,000セルの制限があったりしますが、「見やすい」「使い勝手がわかる」「更新も楽」「すぐに使える」など、いろいろなメリットがあります。 Google App Script(GAS)の存在も大きいです。spaces.bzの場合、定期的にTwitter APIを叩いてデータを更新する処理が必要だったのですが、GASが大いに力を発揮してくれています。そしてGASとSpreadsheetは言わずもがな親和性が高い。 結果、今の段階ではSpreadsheet + GASを用いて無料でデータベースを利用している状態をつくりだしています。
実現方法は別の記事を書いていますのでぜひどうぞ!
- Nuxt で Google Spreadsheet を DB 代わりに使うぞ大作戦
- NuxtでスプレッドシートをDB代わりに使うぞ大作戦 Part2 - モバイルだって使いたい!
- NuxtでスプレッドシートをDB代わりに使うぞ大作戦 Part3 - asyncDataでだって使いたい!
ちなみに最近は、スプレッドシートをほぼNoSQLのように使っており、1セルごとにJSONフォーマットでデータを打ち込んだりしています。 1セルは500,000文字制限があったりするので、それに気をつけながらやってみたところ、レスポンスが改善したりセル数制限の対策になったりしてます。
戦略5:無料でCI/CD with GitHub Actions
開発をしているとCI/CD周りが気になりますよね。 特にspaces.bzは友人と2人で個人チーム開発しているので、テストやlintはCIでちゃんと回るようにしておきたい。 Netlifyを使っている頃はNetlifyにデプロイを任せるとすぐに無料枠のデプロイ時間を超過してしまいそうだったので、CIでビルドまで終わらせてデプロイだけをNetlifyでやることが必須でした。
CI/CDはGitHub Actionsで十分です。パブリックリポジトリであれば制限なく、プライベートリポジトリでも2000分/月のワークフローを実行できます(Linuxの場合)。
僕たちはPRを作成したときにLintやテストを回し、mergeされたとき(mainにpushがあったとき)にデータの更新をしています。 割と高頻度に開発サイクルを回していますが、それでも2000分に達しないので、問題なく開発ができています。
戦略6:集客はBot
通常サービスを認知してもらうためには、いろいろなところで情報発信をしたりお金を出して広告を出したりしないといけませんよね。 人力orお金の力の選択を迫られたりしますが、spaces.bzではそれをBotに任せる戦略をとりました。
待っていて流入があるほど甘くはないので、何かしら認知してもらわないといけない。けどお金は使いたくない。 そこでとった戦略が、リスナー数の多いスペースをお知らせするBot、です。 アカウントを見ていただくとわかるのですが、リスナー数が100, 500, 1000, ...などの区切りを達成したアカウントをお知らせするBotです。 もともとspaces.bzは「面白いスペースとの出会い」をコンセプトにしているので、そのビジョンから外れることなくサービスを認知してもらえるいい戦略になりました。
さらに、ここでとったもう1つの戦略が3,000円で購入したドメインとサービス名です。 spaces.bzのサービス名はドメイン名と同じです。 そのため、Twitterなどで「spaces.bz」と入力すると「あ、URLね」と認識してくれて勝手にリンクをはってくれます。 このおかげで、Botが「spaces.bzがお知らせします」とつぶやけば集客に繋げられます。
最近はオーガニック検索の数も増えていますが、2021年11月末現在でspaces.bzの流入の80%がTwitterからです。 集客に使えそうなBotアイデアを考えることは、個人開発にとって重要なのです。
まとめ
いかがだったでしょうか? (ほぼ)無料で個人開発プロダクトを運営しているspaces.bzのここまでの戦略についてお話させていただきました! 少しでも個人開発を始めたい人の背中を押せていたら嬉しいです。
余談ですが、最近Twitter APIも盛り上がりそうな雰囲気を出していますよね。 いままで500,000tweets/月だったツイート取得上限が2,000,000に緩和されたり、APIのv2化をきっかけに機能が追加されたり。 面白いアイデアを世に出すチャンスがありそうですね〜。