【個人開発】ITエンジニアが次に読むべき技術書を推薦するアプリケーションを作ってみた
関連記事

【個人開発】テニスのダブルスの組み合わせを生成するアプリケーションを作ってみた

【Fuse.js】Next.jsのブログに検索機能を実装してみた




個人開発として、NextDevReadというWebアプリケーションを開発し、公開したので、どんな技術を使って、どんな構成で、どんなふうに開発進めてきたのか紹介していきたいと思います。
NextDevReadは、ITエンジニアが次に読むべき技術書を推薦するWebアプリケーションです。ユーザーの読書履歴と興味のある技術分野や現在のスキルをもとに、AIが次に読むべき技術書を推薦してくれます。

NextDevRead - 次に読むべき技術書を提案
ITエンジニア向けに「次に読むべき技術書」を提案するサービス。AI推薦により、あなたのスキルレベルと興味に合った技術書を見つけましょう。
自分自身がよく技術書を読んでいるのですが、次にどんな技術書を読もうか迷うことが多かったので、自分自身をターゲットにしました。本屋で本を探す時間も楽しい一方で、今まで読んできた本や自分のスキルをもとに、AIが推薦してくれると、新しい本との出会いが増えるのではないかと思い、開発を始めました。
使用した技術は下記のとおりです。
Typescript: フロントエンドの実装言語
React: フロントエンドのライブラリReact Router: ルーティングライブラリTailwind CSS: CSSフレームワークGo: バックエンドの実装言語
Gin: バックエンドのフレームワークSupabase: データベース、認証、ストレージCloudflare: DNS + CDN
Cloudflare Pages: フロントエンドのホスティングRender: バックエンドのホスティングGithub Actions: CI/CDDocker: コンテナ
Docker Compose: ローカル開発環境Gemini API: AI推薦エンジンGoogle Books API: 書籍情報取得Resend: メール配信Github Copilot: 実装サポートアーキテクチャは下記の通りです。

フロントエンドは、他のプロジェクトでも使ったことのあるTypescript、React、Tailwind CSSと初めて使うReact Routerで実装しました。バックエンドはGoを使ってみたかったので、GoとGinで実装しています。
インフラは、AWSやGoogle Cloudでデータベースを構築するとコストがかかるため、今回はPaaS系のサービスを使うことにしました。フロントエンドはCloudflare Pages、バックエンドはRenderでホスティングしています。データベースや認証、ストレージはSupabaseを利用しています。この構成だと、インフラのコストがほとんどかからず、構築できました。
今回は、アイディア出しから実装まで、ChatGPTもしくはGithub Copilotをフルに活用して開発を進めました。
具体的には、下記の流れで進めました。
生成AIに壁打ちしつつ、内容が固まったら、Markdownにドキュメントとしてまとめてもらって、作成したドキュメントをもとに、次にステップに進むという形で進めました。
個人開発を進める中で、要件やドキュメントをしっかり固めず進めてしまい、途中で方向性がぶれてしまうことが多かったのですが、今回はドキュメントをしっかり固めたことで、スムーズに開発を進めることができました。また、ドキュメントがあることで、生成AIを活用した実装もやりやすかったです。
今後は、
などにも挑戦していきたいと考えています。