July 21, 2023
description : このブログを支える技術について
このブログはこれまでHugoで生成し、GitHub Pagesでホストしていた。それをVercel上のNext.jsで動かすように切り替えた。
理由としては、単純に素振り。以前までのブログはだいたい1年半前に実装したのだけど、そこから時間が経って自分の持っている技術スタックが変わったのでそれを反映したかたち。
あと、だいたい月1ペースで書いていて1あまり頻繁にリポジトリを確認していなかったので気づくのが遅れたが、利用しているテーマ、panr/hugo-theme-terminalがいつのまにかArchiveされていたのも理由のひとつ。
この記事では、今回のブログで利用した技術について記録する。 コードはkei-s16/blog-nextで公開しているので、詳細はそちらで。
職場のフロントに強い人がめちゃくちゃ推していて、触ってみたら感触がよかったので選択。
App RouterがExperimentalじゃなくなるかどうかのタイミングで微妙に資料がなかったが、公式ドキュメントがかなり充実していたので助かった。
tsconfigとかlint設定とかを自動でいい感じにやってくれるので、Node.jsのエコシステムにあまり詳しくなくてもそれっぽくプロジェクトを立ち上げられるのもいい。
いまいちだなと思ったのはDynamic Routesの命名規則くらい。
たぶんいまどきの人はターミナルの中じゃなくてVSCodeとかで開発するから問題ないんだろう。おじはおじなりに回避させてもらって開発を進めた。
Material UIがApp Routerではまだちゃんとは使えなさそうだったという理由が9割くらいで選択。
スタイリングで楽するために使っている。
いまは学生時代からずっと使い回しているCSSと組み合わせてるからほんとにtailwind css使ってるのか? と思うような見た目をしている。
そのうち雰囲気は残しつつもシュッとさせたいところ。
めんどうなのでなるべくDBを持ちたくないが、fs
で悩んだりデータ構造で悩んだりするのはいやだという気持ちを狙いうちしているすばらしいライブラリ。
Markdownの形式と置き場所を指定してあげるだけで、いい感じにアプリで取り扱いやすいようなもろもろを提供してくれる。
雰囲気で使っているのであまり詳しいことは書けない。詳細は公式ドキュメントを。
Next.js使うならお膝元を素直に使おうと雑に選択。Hobbyプランで遊ばせてもらっている。
デプロイもリポジトリとリンクするだけでいい感じに設定してくれる一方で、next lint
が通らないとビルドしてくれない罠もあった。
Vercelのデプロイが走る前の段階(今回はPR)で発火するCIを書いてnext lint
が通っていないことを事前検知できるようにして対処している。
独自ドメインを張るのに使っている。
これの実装を機にterraformで管理するようにした。
レコードの張り替えが楽だったのでterraform化して正解だったなと思いつつ、果たして今後もありがたみを感じるほど頻繁に差し替えるのだろうかという気持ちもなくはない。
でも「趣味のものをterraformで管理してます」って言えるのはかっこいい。かっこいいものはだいたい正解。
だいたいこんな感じ。
せっかくリニューアルしたのでコンテンツを充実させていきたい気持ち。
月1ペースで更新したいと言っていたころの熱量を取り戻せるようにやっていくぞ。
2023年7月現在はまったくそんなペースではないが ↩