【個人開発】自己紹介ページ作ってみた。ソースコード公開【Gatsby/React】 

# はじめに
こんにちは。
個人開発と言えるようなものではないですが、自己紹介ページ的なものを作成してみました。

自身の投稿記事や個人開発や技術スタックを何かに載せておきたかったのですが、GithubのReadmeだけでは味気ないので今回作ることにしました。

画面数が4つだけで大したものではありませんが、今回もソースコードは公開しています。
cloneしてご自由に使用ください。

# 成果物

今回作成したものがこちらです。

https://hizuraky.tk/history/

ソースコードがこちらです

https://github.com/Hizuraky/Hizuraky-profile



表示しているデータや、アイコンや画像は全てリポジトリ内に入れているので
```
> git clone https://github.com/Hizuraky/Hizuraky-profile.git
> cd Hizuraky-profile
> yarn
> yarn dev
```
で同じものがローカルで起動します。

### 各画面
去年くらいからNeumorphismチックなデザインで何か作ってみたかったので今回はそれを採用。
ダークモードを実装してみたり。
PC版は通常、SP版をダークモードでスクショ撮ってみました。

##### 経歴画面
あまり書くことがありませんでした。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/8b5431e8-a00f-441d-1348-be3750936560.png"  width="75%"/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/458aa4a8-3cf3-3008-4453-8caa1045f0b5.png"  width="22%"/>


##### 技術スタック一覧画面
あまり書くことがありませんでした。これでも少し盛った疑惑
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/8204cc90-efeb-6d7e-c9ee-0d9befe693b5.png"  width="75%"/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/2dd47cbd-1b49-153f-59b7-d2aea904f05e.png"  width="22%"/>

##### 投稿記事一覧画面
本当は各サイトのAPIから自動で取得して表示にしたかったところですがまずはサクッと作って公開まで持っていきたかったのでハードコーディングです。
更新するときはデータ入れてるファイルに追記、コミットと手動でやらないとです。
~~Qiitaや会社の技術ブログから引っ張ってこれるのかを調べるのが面倒で調べてすらいません。すみません~~
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/000487ec-670a-8d82-2ab6-5f72229336f5.png"  width="75%"/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/a5e2ab82-f607-3913-1f53-95f32c6d0c2e.png"  width="22%"/>

##### 個人開発一覧画面
あまり書くことがありませんでした。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/a341a79a-fca4-4e74-b965-14e4d61e1197.png"  width="75%"/><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/c32e80b2-c904-c566-9b05-36a24496c425.png"  width="22%"/>



# 使用技術・サービス

使用技術・サービスのイメージはこのような感じ。
![スクリーンショット 2022-10-05 2.25.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/a7c9c174-e5d1-bad2-367e-8dd578b17733.png)


#### [Gatsby](https://www.gatsbyjs.com/)
言わずもがなReactのフレームワークです。
選定理由としては、今回はSSGがいいと思った + 使ったことない技術を使ってみたいと思ったからです。
NextjsとGatsby両方で開発してみましたが、次どちらかで開発をするならNextjsを選ぶ気がします。

#### Gatsby vs Next.js
どちらも下記の共通点があります。
- ReactのJamstackフレームワーク
- SSG対応

大きな違いとして、以下が上がるかなと思いました。
- Next.js -> SSR対応
- Gatsby  -> 独自の豊富なプラグイン

ただ、これだけみても甲乙つけがたいのですが、使っていると細かいところでGatsbyでは不便さを感じてしまいました。
例えばですが、
- importのルートディレクトリを指定するのも、`tsconfig.json`の変更に加え、プラグインを導入して設定する必要がある
- 各画面に共通のレイアウトを適用するには、プラグインを使用するか各画面でimportする必要があります。（公式ドキュメントにそうするしかない。と書いてあります。）またプラグインを入れても、プラグインご指定のディレクトリではtailwindが効きませんでした。

Gatsbyjsは立ち上げてすぐにGraphQLを使えたり既存テーマを使用できたりと、短時間で何かを構築する際には向いているとは思いますが、それ以外の場合はNext.jsを選んだ方がベターな気がします。
(npm trendを見てもNext.jsの方が人気ですしね)
![スクリーンショット 2022-10-05 2.20.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527842/a902af4f-a579-750f-64f7-87b977ebf2db.png)


https://npmtrends.com/gatsby-cli-vs-next

https://www.gatsbyjs.com/



#### [Netlify](https://www.netlify.com/)
Hostingに使用。
選定理由はGatsbyでプロジェクトを作成したときにデプロイ先にNetlifyの選択肢があったため + 使用したことがなかったため。

https://www.netlify.com/

#### [Freenom](https://www.freenom.com/ja/index.html)
毎度ご利用しているfreenomさんです。
freenomは無料の独自ドメインを提供しています。

https://www.freenom.com/ja/index.html


# 開発を通じて
今回は「Neumorphismチックなデザイン」で「サクッ」と「自己紹介ページ」を作るといった思いで着手しました。
作業内容・時間としては
|No|作業|所用時間|備考|
|:----:|:----:|:----:|:----:|
|1|デザイン作成|5時間|　PC版のみをFigmaで作成。|　
|2|技術選定|1時間|　Gatsbyのドキュメント読解時間|　
|3|開発|10時間|-|
|4|デプロイ|1時間|Github + Netlify + freenom連携|　

こんな感じだったと思います。
やはりデザインは苦手です。時間もかかるし中々納得のいくものができません。
勉強とか何もしたことがないので当たり前ではあるのですが、いつも自分の感性にしたがってます。

使ったことないもので上記の時間で作れたことを考えると、及第点といった感じでしょうか。

現状すぐに作りたいものがないので、一旦個人開発は置いといて書きたかったネタの記事を会社の技術ブログで書いていきたいと思います。

https://ramble.impl.co.jp/author/36/

こちらも是非チェックしていただけますと幸いです。