💡

webエンジニアによるAstroとWordPressの比較

2024/02/11に公開

webエンジニアによるAstroとWordPressの比較

概要

webエンジニアがブログを始める時に、何がいいかを調べたろこと
以下の二つが候補にあがったのでそれをまとめました。ブログを始めるwebエンジニアの参考なれば嬉しいです。

Astro
https://astro.build/

wordpress
https://ja.wordpress.org/

Astroの特徴

ReactなどのJavaScriptライブラリと同じジャンル。
npmでインストールして、開発サーバー立てて、buildして、静的ファイルと作成して、それを公開すれば良い。
また、React,Vueのコンポーネントを使用できるため、フロントエンジニアからすれば、「この感じ、すごく馴染む」っとなると思う。

メリット

  • zennやqiitaなどのサイトの展開が容易
    基本的に記事は.mdファイルでファイル単位まとめることができる。つまり、zennでレポジトリを指定して、githubアクションにqiitaを仕込み、amplifyと結びつけておけば、

    • zenn
    • qiita
    • 自身のブログ

    の三方展開を一つのレポジトリによって容易にできる。

  • フロントエンジニアにすごく馴染むツール
    React, Vueのコンポーネントを使えるのはでかいと思う。

デメリット

  • WordPressと比較してテーマが充実していない、テーマの乗り換えがめんどくさい
    単純にWordPressと比較するのであればテーマは少ない、加えてWordPressは管理画面の1clickでテーマを変更できるが、あくまでastroはコードにベタ書きなため、テーマの乗り換えは割とあーだこーだする必要がある気がする

  • コメント機能といった動的サービスが自分で実装する必要がある
    wordpressは、ここら辺はよくできているので、何も気にせずにログイン機能はコメント機能の実装がすぐにできるという印象。しかし、astroはあくまで静的サイトまでが担当なので、自分でAWSでDBを借りてやる必要がある

wordpressの特徴

wordpressは、広いジャンルで言えば、webフレームワークの一種と言っていいと思う。
webサーバーにはApacheを使用しており、DBはMySQLを採用している。言語はPHPが使用されており、最大の特徴は、管理画面の充実さだろう。
具体的には管理画面で以下のことが可能

  • フロントテーマをダウンロードして、ワンクリックでサイトに反映
  • プラグインを利用して、問い合わせフォームや人気の記事ラインキングの作成、Googleアナリティクスなどの連携が1ボタンで実装可能

といったようにプログラミングなんてわからなくても、誰でも充実したサイトを作ることが可能。

メリット

  • みんな使っている
    エコシステムの充実さはすごいと思う。また、副業でもwordpressが使えれば割と案件自体は充実しているように見える(実情は知らない)

  • ノーコードでの機能の充実
     先ほども述べた通り、ノーコードでできることは非常に多い。

デメリット

  • 拡張する敷居が高い
    PHPの閉ざされた(印象)webフレームワークなため、基本的には自身でコードをいじって、自分の思い通りに動かすには、ある程度の練度が必要に思える。PHPガチ勢は問題ないだろうが、JS一族、python使いにはちょっと辛いところがある。

  • セキュリティ面で不安
    これはwordpressに限った話ではないのだが、扱いとしてはフル機能を完備したwebフレームワークにもかかわらず、敷居が低いので、ある程度しっかりした初期設定をしない限り、セキュリティ面で不安を持ち続けたままの運用となってしまう。
    最低でも管理画面のURLはちゃんとしたい。

https://www.conoha.jp/lets-wp/wp-loginurl/

結論

「俺はエンジニアだ!」と思うタイプは、astroに使えばいいと思う。
もし、「ブログ作るのがメインなんだー」という人は、wordpressでも良いかもしれない。
wordpressは管理画面にログインして、記事を書くという感じなので、VScodeでしか記事を書いて、それをgit管理しないと吐き気がする人は、wordpressはあまり向いていない気がする。あと強強PHPエンジニアもwordpressでいいかもしれない。

私個人としては、wordpressを始めるような環境を構築しつつ、astroを使っていくかなぁっという感じです。

余談

ちなみにwebエンジニアがwordpressを始めるとなった場合
https://weblabo.oscasierra.net/wordpress-docker-compose/

を参考にした方が良いかと思います。
docker-compose + Wordprss + Gitがおそらく最適解な気がする。

ちなみに、自分はバックエンドにPythonしか使ったことないので、WSGIを使用した時にhotリロードで苦戦した経験があったので、wordpressもhotリロードできるのか??ってGPTに聞いたところ以下の回答があった。

PHPモジュールは、通常、Apacheの再起動なしにPHPスクリプトの変更を反映します。これは、PHPが動的にスクリプトを読み込み、実行するためです。Apacheの再起動なしにPHPスクリプトの変更が反映されるのは、ApacheがPHPモジュールを介してPHPスクリプトを処理する際に、新しいスクリプトを再読み込みし、更新された内容を即座に反映するためです。
一方で、WSGIや他の一部のWebサーバーのインタフェースでは、Pythonや他の言語のアプリケーションの場合、サーバーの再起動が必要な場合があります。これは、Pythonアプリケーションがサーバーの起動時に読み込まれ、その後変更があってもサーバーの再起動なしには更新されないためです。
つまり、PHPモジュールはPHPスクリプトの変更を動的に反映できるため、Apacheの再起動なしに更新が可能です。

とのことです。
WordPressって重いっと言われる一因としてこういうところがあるのではないかと思いました。

GitHubで編集を提案

Discussion