【個人開発】YouTubeの動画からキーボードのランキングを作成するアプリケーションを作ってみた
関連記事

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

【個人開発】ブログをWordPressからNext.jsへ移行してみた




個人開発として、Keybaord Trend という Web アプリケーションを開発し、公開したので、どんな技術を使って、どんな構成で開発したのか紹介していきたいと思います。
Keyboard Trend は、YouTube の動画をベースに作成したキーボードのランキングサイトになります。現状はシンプルに、なるべく特定のキーボードに限定されるようなキーワードで検索して、ヒットした動画数をベースに期間を限定したものと、期間を限定していないもので作成しています。
Keyboard Trends
The ranking based on YouTube.
コンセプトとしては、以前開発した個人開発のアプリケーションがデータベースを使わない構成だったので、何かしらデータベースを使ってみたいということで開発しました。ただ、最初は RDBMS で構築していたのですが、コストが高くなりそうだったので、NoSQL を使うことにしました。

【個人開発】アスキーアートを生成する簡単なアプリケーションを作ってみた
はじめに 初めて個人開発として、AA Generator という Web アプリケーションを開発
アーキテクチャは下記の通りです。

メインのプラットフォームとして、他のパブリッククラウドと比べて前提知識がある GCP を選択しています。フロントエンドは Typescript + Next.js(App Router)、バックエンドは Go + Gin で実装し、Cloud Run で動かしています。
Gin のディレクトリ構成は下記のボイラープレートを参考にしています。
GitHub - vsouza/go-gin-boilerplate: A starter project with Golang, Gin and DynamoDB
A starter project with Golang, Gin and DynamoDB. Contribute to vsouza/go-gin-boilerplate development by creating an account on GitHub.
また、Github Actions を利用して CI/CD パイプラインを実装しました。Cloud Build でソースコードのビルドとイメージ作成し、作成したイメージは Artifact Registry に格納しています。
ローカルで試す場合は、Docker Compose でコンテナを起動し、Firestore エミュレータを使って、開発していました。
使用した技術は下記の通りです。
今回初めて GitHub Copilot を契約して使ってみました。Tailwind CSS でのスタイリングやまだまだ使い慣れていない Go の書き方など非常に参考になりました。
今後実装したい機能は下記の通りです。
機能的にもかなり絞って公開したので、より充実したランキングにしていきたいと思います。