エンジニアがブログを開設すると起こりがちなこと

私も長い間、プログラミングをやっていて、過去にも数回ブログを立ち上げました。そこで起こりがちなことは、ズバリ記事の投稿に注力せずに、ブログの挙動、システム、デザインに凝ってしまうことです。気づいたらものすごく時間を費やしていたなんてことがあります。

私も、このブログを開設したばかりで、今現在の最適な運用方法をついつい考えてしまいます。

今流行りなのが、WordPressからJamstackへの移行です。

Jamstackとは何か?

Jamstackの公式サイトによると、

  • Better Performance
  • Higher Security
  • Cheaper, Easier Scalling
  • Better Developer Experience

とあります。何と比較しているかというと、昔からあるCMS(WordPress, Drupalなど)です。CMSを運用された方はご存知だと思いますが、ユーザーのリクエストに応じて、サーバー側でPHPなどのプログラミングを実行してHTMLを動的に生成してブラウザに表示する仕様なので、セキュリティーを完全に担保することが出来ないのです。毎月のようにバージョンアップのパッチを当てる必要があります。プラグインの欠陥が原因で、サイトがハッキングされてしまう事例はよくあります。つまり、運用に一手間かかるのが、CMSの弱点です。

それに対して、Jamstackでは、HTMLは事前に生成された後に、サーバー上で運用するので、ハッキングされてしまう可能性は基本的にあり得ません。あと、サーバーの構成自体もプログラミングを走らせる必要がないため、シンプルな構成になります。つまり、運用資金も安くなる傾向にあります。

なんかいいことずくめな気がしたので、私も色々調べて、Gatsbyを選んで、ブログサイトを荒削りで作成してみました。Gatsbyを選んだ理由は、今流行りのReactベースなので、Reactの知識があれば、基本的にフルカスタマイズが可能です。私の結論としては、今回は見送ることにします。理由は以下にまとめます。

  • 記事を更新するたびに、全サイトのHTMLをビルド生成する必要がある。
  • 画像の処理に時間がかかりそうな気配が、数記事で散見された。
  • Workaroundとして記事の管理をGatsbyに任せるではなく、ContentfultとかAPIベースのCMSを使って、GatsybyはHTMLレンダリングなどのフロントエンド機能に特化する分離方法もあるが、CMSのAPIサービスなどはクラウドに置くことになる。(これはフロントエンド(Gatsbyなど)のフレームワークを将来簡単に入れ替えられるという利点もある)
  • Jamstackで構築するCMSは、まだ枯れた技術ではないので、サービスが今後数年で、ごそっと入れ替わる可能性が高い。そして、それに翻弄されたくない。(今、JoomlaからWordpressに移行しろと言われたら鳥肌が立つ)

ざっと調べただけでも、静的サイトジェネレーターは沢山あります。WordPressやDrupalが出てきた時のCMSの戦国時代を思い出します。

  • Jekyll
  • Hugo
  • Gatsby
  • Next.js
  • Nuxt.js
  • Hexo
  • 11ty (Eleventy)

全部管理できるWordpressで、現状は良いです。料金もLightsaiで運用しているので、低コストで、ブログのアクセスが今のままであれば、ひとまず問題なさそうです。HugoだとGoベースでビルドするので、ビルド時間は大幅に短縮できることも考慮しましたが、毎日ブログを更新する頻度だと、WordPressに軍配が上がると思います。しかし、企業のHPなど、ほとんど記事を更新する必要がないサイトにはJamstackはかなり有効な気がします。フロントエンド開発まわりは技術の変化がとても早いです。今後の発展が楽しみです。

サムネイル提供:Man vector created by upklyak – www.freepik.com