こんにちは、youhei です。
『ほっとテック』はお知らせに使っているニュースレターの配信プラットフォームを Revue から Substack へ移行しました。
今日は、実際にやってみた移行作業のなかみについて記事にしてみます。
もともと移行手順は Notion にメモ程度に書いて進行していました。また、Revue 自体が1月18日に終了しますし、移行手順を公開するモチベーションはそれほど高くありませんでした。ただ、似たような状況で対応したみなさんと有意義な意見交換のきっかけになるかも?と気持ちを改めて文章にしてみました。何かの参考になれば。
移行概要
ほっとテックでは Custom Domain の hotto.tech があるので Substack でもこれを使う前提でした。ただ、Revue では apex domain の hotto.tech が使えていたのですが、Substack ではこれを使用できません。このため、以下を移行の要件としています。
Substack はドメインを www.hotto.tech とする
Cloudflare を使って hotto.tech の URL は全て www.hotto.tech へリダイレクトする
移行手順
記事の移行
Revueから全記事のzipを export
zip を解凍してsubscribers のCSVを一旦空にしてまたzipに戻す
移行告知前に email list を Substack 側に取り込むのは避けたかったので、、
Move from Revue To Substack で zip をアップロードすると全記事移行された状態の publication が作られる
ドメイン設定
作られた publication を hottotech.substack.com にリネーム(実際は hottotech を事前に確保しておいて、つけかえた)
Substack の Custom Domain 機能を$50で購入し、www.hotto.tech を設定、Cloudflare DNS で CNAME も設定
リダイレクト設定
Revue の全記事 URLを取得
https://hottotech/?format=rss から取得できるので雑なワンライナーでタイトルとURLのCSVを取得
curl -sL 'https://hotto.tech/?format=rss' | xpath -e '//item/title/text() | //item/link/text()' -q | sed -E -e :a -e N -e '$!ba' -e 's/\nh/,h/g' | sed -e 's/https.*hottotech/hotto.tech/g' | sort > revue-urls.csv
Substack の全記事URLを取得
タイトルとURLの一覧を作る
下記コマンドの offset をずらして12件ずつ取得。limitは12が上限みたいでこれしかなかった。
curl -sL "https://www.hotto.tech/api/v1/archive?sort=new&limit=12&offset=0" | jq -r '.[] | [.title, .canonical_url] | @csv' >> substack-urls.csv
Revue と Substack の URL を一覧にする
join -t, -1 1 -2 1 -o '1.1 1.2 2.2' revue-urls.csv substack-urls.csv > revue2substack-with-title.csv
Substack で手作業で記事URLの再設定
あとは Cloudflare でリダイレクトルールを CSV インポートして完了!、の予定だったのだが Cloudflare のフリー版は静的リダイレクトの設定数上限が20で約80記事の設定はできず方針変更することに。
手作業で Substack 各記事の URL 最後のパスを Revue の同記事と揃える作業をした。3. で作ったファイルを GitHub にあげて、作業はくしいさんが全部やってくれました(ありがとう!)。
Cloudflare で Page Rule を設定する
以下の Page Rule を作成(今は無効で Revue 終了後に有効にする予定)
hotto.tech/issues/*Forwarding URL (Status Code: 301 - Permanent Redirect, Url: https://www.hotto.tech/p/$1)
移行アナウンス関連
Revue 側で移行アナウンスのニュースレターを配信
TwitterプロフィールからRevueの購読リンクを消す
Revue の Account Setting の Twitter Integration にある “Show newsletter on Twitter profile” からチェックを外す
1月18日時点での Revue の Subscribers 一覧を import 予定
おわりに
これで移行作業でやったことほぼ全てかなと思います。抜け漏れある場合は教えてくださると嬉しいです。ひとまず全記事リダイレクトが Cloudflare のおかげで無事できたので少しほっとしています。
実は Revue 終了後に www なしの hotto.tech ドメインをどう扱うかを決めていませんが、なにか良い使い方が思いつくまでは普通に www に飛ばそうかなと思っています。
おまけですが、hotto.tech ドメインは色んなサービスを使っている都合もあり、覚えにくい URL をメモするような役割として以下を設定してます。
hotto.tech/contact : おたよりの Google Form
hotto.tech/community : ほっとテックの Discord
hotto.tech/bookmarks : 実は用意している Linktree
hotto.tech/feed : Anchor の RSS
ありがとう Revue、こんにちは Substack。これから使いこなしていくぞ〜!