プログラマーが一人でwebサービスを考えて開発してリリースしてみた
こんにちはしかじろうです。普段はスタートアップでプログラマーをやってます。自分でサービス考えて開発してリリースして運用してみたかったので、やってみました。
どんなサービス?
Slackのチャットで社内用語や一般用語検索ができるサービスです。特徴的なのは、社内用語集をGoogleスプレッドシートで管理してもらうところです。スプレッドシートならだれでも管理しやすいのが良いところです。
ここで試せるので触ってみてくださいね。
なんでwebサービス化したのか
社内用語をだれでも分かりやすく簡単に管理しつつ、スピーディーに検索する仕組みが必要で、社内専用Botを作って運用していました。
技術的なことはzennにも書いてるのですが、非エンジニアがデプロイするのはちょっとむずかしい内容です。
今回、エンジニアが居ない組織の方でも用語検索が使えるようにwebサービスとして公開してみました。
リリースまでにやったこと
すべてを忘れる前に書き残してみたいと思います。
サービスを考える
スタートアップに入社が決まりSlackチャンネルに入ったところ、業界用語、社内用語が飛び交っていて「???????????」でした。用語集はNotionで管理されていたのですが、会話しながら探すのは時間かかりますし、必ず用語が見つかるとは限りません。
Slackで検索できるようになれば会話やチャットしながらでも使えるし、「あ、この人はこの用語が分からないんだな。」という気持ちが相手に伝わるので良いコミュニケーションが生まれると思いました。
第一顧客が自分なので良いアイデアが生まれた気がします。必要は発明の母ですね。
プロトタイプをユーザーに使ってもらう
早速作って勝手に社内で広めました。ほとんどの人からポジティブなフィードバックをもらい、組織に無くてはならないサービスにまで成長しました。特に新入社員のオンボーディングで効果を発揮することがわかりました。他にも社員だけがわかるおもしろネタを登録し、自分は直接言わずにBotに言わせる遊びなども流行りました。
半年くらいして社内外で良い反響が増えてきたのでサービス化を検討しました。
開発・リリース環境を整える
やっつけで作ってたので実装をやり直しました。可能な限り保守の手間を省きたかったのでマネージドサービスを優先的に選び、CloudRunやFirebaseを採用してます。ここらへんは長くなりそうなので詳細は後日Zennにまとめてみたいと思います。
告知する
安定した開発ができ公開化もできそうなところまできたので、webサイトを作りました。
アイコン
https://www.canva.com
このサービスを使っていい感じのを採用しました。無料枠で選びました。
webサイト
Strikinglyという簡単にLPやショッピングサイトなどが作れるサービスを利用しました。独自domainを使いたいので一番安いプランを課金してます。
domainはgoogle domainで.comのものを探して取得しました。
プライバシーポリシー・利用規約の準備
ここが一番大変でした・・・。今まで一度も真剣に向き合ったことがなかったので、社内のめちゃ強い人にアドバイスもらったり、本を読んだりして勉強しました。
kiyakというプライバシーポリシーを生成してくれるサービスもあるのですが、中の人には申し訳ないですがイマイチでした。いろんなプライバシーポリシーを読んで自分なりに納得して作るのが大事だと感じています。
途中でやめたこと
課金周り
は最初のリリースではいらないと決めたので、これから実装です。Outsetaが評判いいので試してみる予定です。(すでに課金はしてしまった)
管理画面
最初React-Adminなどを使って管理しようと思ったのですが、FirebaseのDB管理画面でとりあえずなんとかなりそうなので、頑張って作るのをやめました。
リレーショナルデータベース
MySQLなどを使った方が便利なのですが費用が高いため断念しました。幸いtellmebotはデータを殆ど使わないのでリレーショナルデータベースを使わなくても問題なく実現することができました。(問題が出るのはこれからかもしれませんが・・・)
途中で追加したもの
「スプレッドシートが空だと何も検索できない」のは使い始めの体験的に良くないと思い、「スプレッドシートにの検索結果がからだった場合はwikipediaから検索する」機能を追加しました。
この機能が必要だったかどうかはわかりませんが、僕の直感が不安だったので良しとします。
まとめ
いろんな外部サービスに頼ったり、いろんな機能を諦めたりして、リリースまで至ることができました。増やしたい機能や改善は山のようにあるのですが、まずはリリースすることを大事にしました。自分一人でサービスを作る場合は、自分が欲しい物を作るのが調査する手間が省けるので良いと思います。
引き続きユーザーの声を聞きながら、サービスを改善して行きたいと思います。