👾

お財布に優しい個人開発の戦略 - spaces.bzの場合

6 min read

こんにちは。asatoです。
Qiita Advent Calendar 2021 個人開発 3日目の記事です。

みなさん、今日も楽しく個人開発やってますか??
個人開発は「楽しい」し「スキルアップ」できるし「夢(収益が出れば...)」もありますよね!

2021年9月、僕は友人とふたりでspaces.bzをリリースしました。
合言葉は「なるべく無料で...」。
そう、個人開発には潤沢な資金はありません!リリースしたはいいけどランニングコストだけかかって全然使われないは避けたいのです!

実際、spaces.bzは2021/12/3現在、支出は最初のドメイン代の3,000円のみです。
一方で、PV数は12000+/月、Twitterボットのフォロワー数は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のアーキテクチャ図

では、実際にどんなことを考えてspaces.bzをランニングコスト0で開発してきたのか、語っていきたいと思います。

戦略1:データを持たないプロダクト

僕たちが一番ネックに感じていたことが「データ」です。
なんとなく、ホスティングサービスに比べてデータベース系のサービスはちゃんと気をつけないと無料枠をすぐに食いつぶしてしまうイメージがあったんですよね。
データがないと面白いアイデアになりにくいと感じつつも、お財布を気にせずデータを保存する方法もあまり思いつかなかったからです。
そこでspaces.bzAPIを活用するプロダクトの戦略をとりました。
APIであれば提供元のデータを活用して面白いことがやりやすそう、ってことです。
ちょうどTwitter社が2021年8月にTwitter SpacesのAPIを公開したこともあり、これを使って何か面白いことができないかと考えていったものがspaces.bzです。

Twitter APIは無料でも利用可能ですが、単位時間あたりのリクエスト数やツイート取得数に制限があります。
その制限の中でやりたいこととできそうなことのバランスをとりながらプロダクトを作ってきました。💪

https://developer.twitter.com/en/docs/twitter-api/rate-limits

戦略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 PagesHerokuなど、無料枠でも十分にホスティングできるサービスが充実しています。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で無料でデータベースを利用している状態をつくりだしています。

実現方法は別の記事を書いていますので、気になる方はどうぞ!

https://zenn.dev/at946/articles/0c170df6a5a16b
https://zenn.dev/at946/articles/bfd9d500359427
https://zenn.dev/at946/articles/c02b5ebfa46786

ちなみに最近は、スプレッドシートをほぼNoSQLのように使っており、1セルごとにJSONフォーマットでデータを打ち込んだりしています。
1セルは500,000文字制限があったりするので、それに気をつけながらやってみたところ、レスポンスが改善したりセル数制限の対策になったりしてます。🎉

戦略5:無料でCI/CD with GitHub Actions

開発をしているとCI/CD周りが気になりますよね。
特にspaces.bzは友人と2人で個人チーム開発を行っているので、テストやlintはCIでちゃんと回るようにしておきたい。今となってはデプロイはVercelがやってくれていますが、Netlifyを使っている頃はNetlifyにデプロイを任せるとすぐに無料枠のデプロイ時間を超過してしまいそうだったので、CIでビルドまで終わらせてデプロイだけをNetlifyでやることが必須でした。

CI/CDはGitHub Actionsで十分だと思います。パブリックレポジトリであれば制限なく、プライベートリポジトリでも2000分/月のワークフローを実行できます(Linuxの場合)。

https://docs.github.com/ja/billing/managing-billing-for-github-actions/about-billing-for-github-actions#about-spending-limits

僕たちはPRを作成したときにLintやテストを回し、mergeされたとき(mainにpushがあったとき)にデータの更新をしています。
割と高頻度に開発サイクルを回していますが、それでも2000分に達しないので、問題なく開発ができています。

戦略6:集客はBot

通常サービスを認知してもらうためには、色々なところで情報発信をしたりお金を出して広告を出したりしないといけませんよね。
人力 or お金の力の選択を迫られたりしますが、spaces.bzではそれをBotに任せる戦略をとりました。

https://twitter.com/spaces_bz_bot

待っていて流入があるほど甘くはないので、何かしら認知してもらわないといけない。けどお金は使いたくない。
そこでとった戦略が、リスナー数の多いスペースをお知らせするBot、です。
アカウントを見ていただくとわかるのですが、リスナー数が100, 500, 1000, ...などの区切りを達成したアカウントをお知らせするBotです。
もともとspaces.bzは「面白いスペースとの出会い」をコンセプトにしているので、そのビジョンから外れることなくサービスを認知してもらえるいい戦略になりました。

更に、ここでとったもう一つの戦略が3,000円で購入したドメインとサービス名です。
お気づきの方もいると思いますが、spaces.bzのサービス名はドメイン名と同じです。
そのため、Twitterなどで「spaces.bz」と入力すると「あ、URLね」と認識してくれて勝手に「http://spaces.bz」のリンクをはってくれます。
このおかげで、Botが「spaces.bzがお知らせします」とつぶやけばspaces.bzへの集客に繋げられるようになります。

最近はオーガニック検索の数も増えていますが、2021年11月末現在でspaces.bzの流入の80%がTwitterからです。
集客に使えそうなBotアイデアを考えることは、個人開発にとって重要なのです。

まとめ

いかがだったでしょうか?
(ほぼ)無料で個人開発プロダクトを運営しているspaces.bzのここまでの戦略についてお話させていただきました!
少しでも個人開発を始めたい人の背中を押せていたら嬉しいです。

余談ですが、最近Twitter APIも盛り上がりそうな雰囲気を出していますよね。
いままで500,000tweets/月だったツイート取得上限が2,000,000に緩和されたり、APIのv2化をきっかけに機能が追加されたり。
面白いアイデアを世に出すチャンスかもしれないですね〜。

最後に宣伝

spaces.bz、ぜひ使ってみてください!

https://spaces.bz/ja

フィードバックはこちらから!

https://marshmallow-qa.com/spaces_bz?utm_medium=url_text&utm_source=promotion

応援はこちらから!

https://note.com/spaces_bz/n/nabca77baa568
https://www.buymeacoffee.com/spacesbz

Discussion

ログインするとコメントできます