個人で開発していた上場企業の情報サイトをOSSにした
結論
個人で開発していたWEBサービスをOSSとして公開しました。
この背景や技術環境について書いていきます。
すべてのソースコードをGitHubに公開しています。
スターやレビューをしてくださると嬉しいです!
公開したサービス: 上場企業ランキング
先日、オープンソースでWEBサービスを公開しました。
「上場企業ランキング」というサービスです。
その名の通り日本の上場企業を業界ごとに「給与」や「売上」順で閲覧することができるサービスです。
私は2度の転職活動経験がありますが、企業を選ぶ際に知っておきたいことはいくつもありますよね。
- 「給与はどのくらいだろう」
- 「売上や利益はどの程度なのかな」
こういった情報は、求人ページに記載されることは少なく、企業の決算情報を見てようやく知ることができるものです。
でも、企業ごとに決算情報を調べるのって大変ですよね?
ということで自分がユーザとして使いたいサービスを作ってみました。
自分が見やすい、使いやすいという点にこだわり開発をしてきました。
技術環境
- Worker: Ruby, Ruby on Rails
- Web API: Go, chi
- Frontend: TypeScript, React, Next.js
- Infra: Heroku(Server, DB, Scheduler)
- Hosting: Vercel
つい最近技術スタックを一新し、上記の構成となりました。
インフラには個人開発の味方、Herokuを利用しています。
Workerについて
Heroku Schedulerにより、Workerを起動し、Railsの定期ジョブが実行しています。
このジョブはいくつか種類があるのですが、主には会社情報、決算情報の取得しDBへ保存する役割を持ちます。
Web APIについて
Web APIにはGoを採用しています。
Open APIによってスキーマ定義をし、oapi-codegenによるサーバーコードの生成を行っています。
もとはこのWeb APIはWorkerと同様にRailsで書いていたのですが、個人的な理由でGoへのリプレースを行いました。
仕事柄、バックエンドでは主にGoを利用することが多く、Railsを触れる機会がありません。
そこで、一定の知見があるGoでWeb APIを実装してみたくなりGoへリプレースを実施した、というわけです。
Frontendについて
Frontendには、Next.jsを採用しています。
なお、従来のPage RouterではなくApp Routerを活用しています。
もとはFrontendをComposition APIを利用したNuxt.js(2系)を採用していました。しかし、Nuxt.jsの3系へのアップデートのハードルが高く、ライブラリ等のエコシステムがVue3系に追従できていない現況を考慮し、Next.jsへのリプレースを実施しました。
なぜOSSとして公開したのか
なぜ、個人で開発していたサービスをOSSとして公開したのでしょうか?
それは、マネタイズの目処が立たなかったからです。
当初は、PVを稼いでアドセンスや求人の広告によるマネタイズを目指していました。
しかしながら、現在のPVは多くても月に500程度です。SEOの改善のために、KeywordやDescriptionなどの変更を行ってみたものの、大きな改善は見られませんでした。
WEBサイトの売却という点についても検討してみましたが、すでに売上が発生しているサイトでななければほとんど価格はつかず、相場は10万円程度のようでした。
マネタイズができないのならば、せめて自分の技術ポートフォリオの一環としよう、と考えてOSSとしての公開に踏み切ったわけです。
公開することで、みなさんからのフィードバックを頂きながらサービスの向上に役立てたいとも考えています。
最後に
最後までお読みいただきありがとうございます。
再掲ですが、ぜひ覗いて行ってくださいね!
Discussion