【個人開発】GitHubで注目されているリポジトリを見つける「Awesome Repository」というサービスを作りました🚀

どうもaiiroです。フリーランスで主にサーバサイドエンジニアをしています。

https://awesomerepository.com/

最近作っていた「Awesome Repository」というサービスが形になってきたので、現状を一旦まとめてみることにしました。

awesomerepository_screenshot.png


何ができるの?

GitHubのリポジトリごとのスター数を集めていて、前回集計したときからスター数がどのくらい増減したかを記録しています。

スターの増加数(増加率)の順で一覧を表示していて、注目されてたり、注目され始めているリポジトリを見つけることができます。


なんで作ったのか?

企業ブログやはてブ等にあがってくる技術系の記事で、使用している技術が紹介されていて、そこで初めて知ったリポジトリがスター数1万を超えていたりすることがあるんですが、そういうのを早く知ることができるようにしたいというのがモチベーションです。



使っている技術スタック

「Awesome Repository」の開発で使用している技術スタックについて記載します。


Nuxt.js

SSRに対応したかったので、フロントにはNuxt.jsを採用しました。

自分はメインはサーバサイドなんですが、Vue.jsの知識がある程度あれば、ドキュメントを頼りに使えるNuxt.jsは最高でした。


Nuxtで導入したライブラリ


vue-chartjs

https://github.com/apertureless/vue-chartjs

Vue.jsでChart.jsを扱うためのライブラリです。


iamkun/dayjs

https://github.com/iamkun/dayjs

日付を扱うためのライブラリ。わずか2kbという軽さに惹かれての採用です。


vue-lazyload

https://github.com/hilongjw/vue-lazyload

画像の遅延読み込みをサクッと実装できるのが素敵。

PageSpeed Insightを試したときに出た「オフスクリーン画像の遅延読み込み」の対応のために導入しました。


Go(Echo)

APIはGoのEchoで作りました。

仕事ではPHPを使っているので他の静的型付けの言語で作ろうと思い、GoでAPIを作ることにしました。

APIによっては30ms以内でレスポンスを返してくれて、めっちゃ速くて驚きました。

静的型付けの言語を触るのはJava以来だったんですが、Goはフォーマッタも整っているし、誤りはコンパイラで指摘されるので、感触としては結構良いです。



まとめ

これまでよりもGitHubのトレンド情報を早くキャッチできるようになったので、個人的にやりたかったことは満たせるようになってきました。

更に追加したい機能や改良したい点は多々あるので、今後の課題として対応していきたいなと思います。

個人開発は技術選定が自分の好み(思いつき)でできるし、対象の技術についての知見も溜められるしでメリットが多いですね。

それでは今回はこの辺りで、また更新等あれば追記したいと思います。

@aiiro29というアカウントでTwitterをやっているので、良ければフォローしてやってください。