Site cover image

Site icon imageCX LAB(Customer Experience 研究所)

Customer Experience(顧客体験) 研究所。Digital Marketing 分野の技術的な話を中心的に話します。

このサイトをWordpressからNotion+Cloudflare Pages+githubに移行しました。

重い腰を上げて、脱旧型なCMS(Wordpress)管理から、モダンなブログ環境に置き換えてみましたのでその検討、作業ログです。

検討時の内容について

本サイトはいうてもデジタルマーケティングの情報を配信するためのサイトなので、デジタルマーケティングツール群の導入とかカスタマイズは必須だとおもってます。なので、検討事項がいくつかあり…

  • ページ内に様々なJavaScript等プログラム、必要なデータの出力などが出来るようにしたい
  • とはいえコンテンツを書く作業はなるべく普段使ってるツール内で手軽にしたい
  • レンタルサーバーやクラウドは別に使ってもいいけど既存契約している中で納められたらベスト

note とか Qiita(これはこれで使ってるんですが…!)が一番手軽なんですけど、上の要件から外れ。で、色々考えた所やっぱり昨今はJamstackで考えるのが基本だろう…ということで。

  • コンテンツ管理:普段使ってるメモ書き用のNotionを使いたい
  • コンテンツ生成:SSG型をイメージ、何らかのAppでNotionからデータを取り出してHTMLを生成してほしい(HTML/CSS/JSもカスタムしたい)
  • コンテンツ配信:Github Pagesとか安価なホスティングの所で管理したい

こんなイメージをもとに色々調べてた所、日本人のおとよさんが開発してるastro-notion-blogがまさに要望どおりの機能だったので、これを導入することに決定!

こんなアーキテクチャに決まりました。

Image in a image block

導入のための作業

基本的にはもうおとよさんが用意してくれてるReadmeをみたらほぼ簡単にできました。
ただこれだけだと困るのは、デジタルマーケティング関連のツール導入…。

こういうツールでやっぱりデジタルマーケティングツール関連までケアしてくれることはないので、そこについてはastro-notion-blogのコード(ページレンダリング部分)をカスタムしました。

GAとかだけしれっと入れられるようにしてたりしますが、あれってマーケター的に言うと本当に微妙な設定とか機能しか入れられないので困る…

何をしたかというと、タグマネージャー系のツールを入れられるようにカスタムしました。

  • TagManangerごとにComponentsを作成。(必要なデータをHTML出力できるように)
  • Cloudflare Pagesに設定した値を引き継いで処理出来るようにserver-constants.tsとかを調整

詳細は今後追って出そうかな…と思いますが、要はCloudflare Pages側でこんな感じで設定項目を増やして対応できるようにしてます。

Image in a image block

あとはCloudflare Pages側で独自ドメイン利用できるように設定とかもしてますね。

これを作るために自分のローカル開発環境で作業してたんですけど、ローカルでbuildしたページが重くて、これは私が作ったDocker instanceに問題があるのか何なのか…。

既存サイトからの移行について

これはもう力技で…前のコンテンツをコピーしてNotionに貼り付ける形で移行しました。(意外といけた。)

あと今回のタイミングでドメインをちょっとサブドメインありにしたので、そのリダイレクト処理はhtaccessでmod_rewriteを使って処理してます。

結果として

Next.jsとかほぼ触ったことなかったですが、1日あれば移行できましたし、これをオープンソースで公開してもらえてるのは感謝。みんなもastro-notion-blog使ってみると良いと思うよ!

  • 運用費用:実質ゼロ。
    • Notionはこれに関係なく契約して使ってるので
    • githubは無償利用範囲内でOK
    • Cloudflare Pages は無料利用範囲内でOK!(商用利用すらOK)

今後行いたいこと

  • デザインをちゃんとオリジナルにする(既存のAstroで配ってるのを一気に適用させようとするとむずそうだったので、ちょこちょこ自分で作るかな…)
  • buildを定期的にする形にしたい(github actionを使う)
  • そもそもコンテンツを更新する(大事)

参考になったページ等