WordCamp Osaka 2019というイベントにて、JAMstackを使ったWordPressサイト制作の話をしてきました。
WordCamp Osaka 2019とは?
WordPressというCMS(このサイトでも使っています)についての話をする、ユーザーグループ主体のカンファレンスです。
登壇した内容について
今webサイトのフロントエンド開発で注目されている「JAMstack」をWordPressサイトで取り入れるメリットやデメリット、意識すべき点などを紹介しました。
当日のスライド
感想というか、余談
セッション中何回か繰り返しましたが、「銀の弾丸」ではありません。
Angularのアドベントカレンダーにて、「100点か50点か、それより全員80点を」という視点からの技術選択の記事がありました。個人的にかなりの良記事だと思っていますので、これはこれでぜひ三度ほど読んでください。
ここでは、「100点も出せるが、20点も出しうるもの」と「80点を常に出すが、100点にはならないもの」という対比が示されていました。
これは従来のWordPressサイトと、JAMstackで作られたWordPressサイトでも当てはまる対比表現ではないかなと思います。
安定して平均点のWordPressと作る人次第なWordPress with JAMstack
WordPressの良いところは、「誰でもある程度込み入った機能を持つwebサイトが作れる」という点です。そしてJAMstackをWordPressに採用する際の最大のデメリットは、「そのための機能(テーマ機構)をほぼ全て捨てて、一から作ることになること」です。
WordPressをそのまま使えば、いい感じのテーマとプラグインをインストールして設定をすこし頑張るだけでとりあえずwebサイトができます。それもフォームや検索、関連記事などの機能をいろいろ盛り付けたものが。
JAMstackでやる場合、文脈としては完全にwebアプリケーション開発になります。なので、ある程度npmにライブラリこそありますが、テーマ・プラグインの機構と比較すると実質フルスクラッチと言って良いでしょう。
しかしJavaScriptで作るからこその表現力や、事前にHTMLを全てビルドしていることによるサーバーからのレスポンスの速さなどは魅力的です。また、APIを利用するだけの形にすることで、いろんなAPIとのマッシュアップなどもしやすくなります。
JAMstackでの構築を専門にしている方がちゃんと実装すれば、WordPressをそのまま使うよりも良いサイトが出来上がることは十分に考えられます。
JAMstackをWordPressと組み合わせる必要性
個人的には、フロントエンドを開発する人からするとあまりこの組み合わせを採用するメリットはないと思っています。Markdownやcontentfulなどを使いたい・その方が慣れているという方は少なからずいますし、わざわざLAMP構成のサーバーを用意してWordPressを〜という話をする必要もないでしょう。
ですが、コンテンツを管理する側の人間からすると「これまでと変わりないUIで操作できる」という点で魅力的です。WordPressの管理画面は多言語対応やアクセシビリティなどの考慮もされていますし、プラグインを使ってある程度カスタマイズもノーコーディングで行えます。Gutenbergで賛否両論はありますけども。
また、今あるサイトがすでにWordPressで動いているというケースも少なくないでしょう。
そう考えると、「コンテンツ管理部分で新しいサービス / ツールを使ってもらうように教育するコスト」と「APIサーバー扱いとはいえ、WordPressをこれからも動かし続けるコスト」で比較することになるかなと思います。
まぁ、平たくいえば折衷案ですよね。
WordPress vs JAMstack -> WordPress Theme vs JAMstack
これ、いつも思うのですが、JAMstackとWordPressって共存できますよね。
JAMstackはフロントのアーキテクチャですし、A (API)でWordPressのAPIを指定すれば組み込めます。
新しいものがでるとだいたいPHP / WordPress / AWSあたりは比較対象にされて、一方的に別れを告げられていますが、今回のJAMstackって対立・競合関係ではないと思います。
「フロントエンドを表現する方法」として対立・競合するのは、WordPress本体じゃなくWordPressテーマです。なので、「Twenty XXXテーマからXXXテーマに切り替えました!」と同じような文脈で話題にするのが穏当ではないでしょうか。
それに、「今あるWordPressサイトを頑張ってマイグレして、フロントも構築し直して・・・」とするよりは、「今あるWordPressサイトのデータを取ってくる形でフロント作ろう」の方が切り替えコストも少ないと思います。
WordPress界隈でも、パフォーマンス改善やらPWAやらでJAMstackへの興味関心は高まってます。
どっちのコミュニティにも彷徨く身として、今後も仲良くやっていけると良いなと思います。