今回から、新規の個人開発のプロダクトの進捗ブログを執筆していきます。
本記事はその一本目として公開し、以降はシリーズ化して投稿していきたいと思います。
今回は新規プロダクトに関しての構想をまとめます。
どのようなものを開発しようといているのか、構想に至った背景や開発を通して学びたい知識などを書いていきます。
細かい技術の話や仕様については、同シリーズの中で別に公開していく予定なのでよろしくお願いします。
プロダクトについて
今回、新規に開発するプロダクトは
エンジニア向けの書籍管理アプリケーション
です。
いわば、エンジニアの方たちが自分が読んだ書籍を登録して公開することができるweb上の本棚のようなものです。
構想に至ったきっかけ
このプロダクトを思いついたきっかけは単純で
自分が欲しい
と思ったからです。
理由① 技術書の簡単な要約や感想と一緒に公開できるもの
自分は技術書を読むのが好きです。ただ、結構なペースで読む時もあり、ちゃんと頭に入っているのかが不安になることが多々ありました。
そこで自分が特におすすめしたいような書籍に関してはnoteに記事としてまとめたりしてました。
本当は、全ての書籍で読んだ感想や要約などを公開していきたいのですが、記事としてまとめてるには文量が多くなり作業量が多くなるのがネックになってました。
なのでもう少し気軽に、SNSのような感覚で読了記録を投稿、管理できる物が欲しかったのです。
理由② 読了した書籍を本棚として管理できるもの
技術書を読むのと同時に、本を本棚に並べていくのが好きです。アナログの本にこだわっている方などはわかるのではないでしょうか?笑
それと同じような動機で、インターネットの中でも本棚として管理したいと思いました。
同じような機能を持つアプリケーションは多々ありますが、それに加えて本棚を公開する機能が欲しいと思いました。(こちらの理由は後述)
ターゲットをエンジニアに絞る理由
「本」というリソースはエンジニアという職種に限定しなくても、いろんな方が手にしている物です。
しかし、ターゲットをエンジニアに絞ったのには理由があります。
既存のアプリケーションとの差別化
まず一つ理由にあるのが、差別化です。
読了記録を管理できるものはネイティブアプリを含め世には多くのプロダクトがリリースされています。レッドオーシャンともいえるほど出回っています。
なのでターゲットを絞ることで、よりコアな顧客獲得を狙ったプロダクトになっています。
エンジニアが自分が読みたい書籍を探す手段になる
これが一番の理由になります。
自分は読みたい書籍を探すときに、自分がXでフォローしている人たちがお勧めしている書籍や、読み終わった書籍に関連するものを参考にしたりします。
中でも、
"自分が読んだ書籍"を読んだ人が"他に読んでいる書籍"
が一番参考にしたい書籍です。
これを知る手段がないので、今回のプロダクトはあえてエンジニア特化にしました。
そして、エンジニアの学習文化の手助けになる手段を提供することを目的としています。
開発を通して学習したいこと
認証処理
今回のプロダクトは本格的なログイン機能を実装します。
「Googleでログイン」の機能を実装しようと考えています。ゆくゆくはGithub連携なども取り込んでいきたいですね。
初めての言語でのバックエンド構築
自分の経験として、Java(Spring Boot)とPython(Fast API)でのバックエンド構築があります。
今回はそれ以外でのフレームワークやライブラリに触れたいと考えています。詳細は技術選定や仕様検討などの別記事で決定しようと思いますが、現在候補として上がっているのがRuby(Ruby on Rails)かTypescript(NestJS)です。
状態管理のライブラリ
フロントの構築にはNextJSを採用しますが、状態管理ライブラリを採用したいと考えています。
自分の今までの経験では全てuseContextで状態管理を行っていました。なので今回はZustandを採用しようと思います。これも学習記録を別記事で上げる予定です。
CI/CD
フロントもバックエンドもデプロイはPaaSを利用するのである程度CI/CDは担保されていますが、Github Actionsなどを用いたCIの部分などの構築をしてみようかと考えています。
また、長期運用も考えているのでゆくゆくAWSなどでインフラ構築をする場合は本格的にCI/CDを構築してみたいとは思っています。
これからの予定
リリースは細かい目処は立てていませんが、今年中にリリースできたらいいなと考えています。
まずは、細かい仕様を考えたり技術選定、インフラ設計などをはじめとするドキュメント作成から入ります。いつから開発に入るかはわかりません。
自分以外のユーザーが触れるかつ個人情報を扱うことを想定したアプリケーションなのでセキュリティ面なども十分に考慮したものにしたいです。
そのためには、今の自分には知識が足りないところが多々あると思うので長めに学習時間をとったりすることもあると思います。
その都度、記事としてまとめて進捗は逐一公開します。興味はある方は是非閲覧していただければと思います。
最後までご愛読ありがとうございました。今後の記事もよろしくお願いします。

