自分の中で一番今時っぽい技術(Gatsby, Netlify, Contentful, Algolia)を利用して,
個人ブログを作成し, はてなブログから移行しました.
その際に得た知見や技術選定の理由などを記載していきたいと思います.
Reactは, Facebook様が作成された, ユーザインターフェース構築のためのOSSのJavaScriptライブラリです.
Reactを使うことで, 簡単にコンポーネントという単位でUIを分けることができ, データ変更によるUIの更新も簡単に実装することができるようになります.
Gatsbyは, ReactベースでOSSの静的サイトジェネレータです.
Gatsbyを利用することで, 簡単に高速なWebサイトを作成することができます.
今所属している会社の新プロダクトがReactで作成されていることが決まっていました.
こちらの開発に入る前に, ガッツリReactを触っておきたかったのが
今回ブログサイトの作成をする理由の一つだからです笑
今回のブログは高速かつ無料で運用したかったため,
JAMstack 完全入門 ハイパフォーマンス Web サイト構築
でJAMstackの構成技術の例として取り上げられていたGastbyを選択しました.
※後述するContentful, Netlifyもほぼ同じ理由です笑
headタグ内にソースコードを入れることができるため, SEO対策として利用.
TypeScript利用のため.
Contentful利用のため.
Contentfulから取得したMarkdownをHTMLに変換するため利用.
ブログ記事でYouTubeの動画埋め込みをするため.
ブログ記事でソースコードをきれいに見せるため.
プログ記事でリンクを他タブで開けるようにするため.
Reduxを利用するため.
Alolia利用のため.
Google Font利用のため.
ブログ記事でTwitter埋め込みをするため.
CSS in JSライブラリのemotionを利用するため.
Google Analyticsを利用するため.
企業が提供するHeadless CMSです.
Headless CMSとは, WordPressやDrupalなどの一般的なCMSの記事管理のみの機能しかないものになります.
一般的には, WordPressのような管理者画面で記事情報を入力し, 他で作成したWebサイトなどからREST APIで取得します.
1MICRO SPACEは無料で使えます.
詳細は他のサイトなどを見て頂きたいのですが, 5000レコードまで無料です.
※1レコード=1記事or1画像
企業が提供する, REST API形で爆速全文検索ができるサービスです.
詳細は他のサイトなどを見て頂きたいのですが, 5万オペレーションまで無料です.
※1オペレーション=1検索or1レコードの登録/変更/削除
企業が提供する, 静的Webサイト向けのホスティングをしてくれるサービスになります.
他にもCMS機能やフォーム, テスト, 分析, Lamda的なやつも提供してくれています.
静的ホスティングする程度であれば, 無料で利用することができます.
GitHubと連携することで, コミットをトリガーとしてGatsbyをbuildし, 生成された静的ファイルをホスティングすることができます.
これにより, プログラムの修正をコミットするだけで,
みたいな, CIを簡単に作成することができます.
GitHub以外は基本的には初めて触るものばかりで, どれも素晴らしい技術でした.
やっぱり新しい技術を触るのは楽しいですし, ちょっとでも使えた時は成長を感じやすくていいですね.
いい点は他のサイトでも記載されてますので, 僕的に合わなかった点を記載していきます.
※僕の知識不足によるものが大きいです.
仕事でJavaを触っている僕としては, やはりTypeScriptは中途半端すぎる気がしてしまいます...
コンパイルさん, もっと僕を怒ってよ!って思う時が多くあります.
※僕は, JavaScriptの自由さが大好きです
TypeScriptと近い理由で, GraphQLもあまり合いませんでした.
Contentfulは自由度がとても高いのですが, 自由度が高すぎて不便に感じる点が多くありました.
正直, 一から自分で作るのもありだなと思ってしまうほど自由です.
今回はブログの作成に利用した技術をざっくりと紹介しました.
1つ1つの細かい話については, 後日別の記事にしたいと思います.
Twitterフォロー待ってます!