PCを起動しなくても、iPhoneからブログ記事を書けるようにした
きっかけ
このブログは、自作の記事作成ツールを使って書いています。本文を編集し、ボタンを押すとビルドから公開まで順番に進むツールです。毎日書く習慣を続けるには十分便利でした。
ただ、このツールはPCの中でしか動きません。外出先でネタを思いついても、帰宅してPCを起動するまで書き始められませんでした。手元にあるiPhoneで書けたらいいのに、と思ったのが始まりです。
最初に浮かんだのは「PCを起動しておいて、iPhoneから遠隔で操作する」方法でした。しかし、それではPCを付けっぱなしにする必要があります。PCが止まっていても書けるようにしました。
学んだこと
PCのツールがしていた仕事は、大きく二つです。
-
記事を書き、保存する(Gitのリポジトリに記録する)
-
サイトをビルドして公開する
この二つを、それぞれクラウドのサービスに置き換えました。
-
公開する: サイトを置いているCloudflareに、GitHubと連携する機能があります。リポジトリに新しい記録が届くと、Cloudflare側で自動的にビルドと公開が行われます。
-
書いて保存する: Sveltia CMSという、Gitリポジトリをそのまま保存先に使う記事編集画面をサイトに組み込みました。iPhoneのSafariで開いて書き、保存すると、GitHubに直接記録されます。専用のサーバーは要りません。
PCのnpm(Node.jsのパッケージ管理ツール)とCloudflareのビルド環境のnpmで、バージョンが違いエラーがでました。これは依存関係を記録したファイルの読み方が違っていたためです。Cloudflare側と同じバージョンでファイルを作り直すと解決しました。
自分なりの理解
今回のポイントは、「ツールをまるごとクラウドに移す」のではなく、「ツールが担っていた役割を一つずつ置き換える」ことです。PCのツールをそのままインターネットに公開すれば、iPhoneからも使えたかもしれません。しかしそれには、作り直す手間に加えて、外から操作できる入口を自分で守る責任が伴います。
役割で分けて考えると、中心にあるのはGitのリポジトリだけです。PCのツールもiPhoneの編集画面も、同じリポジトリに書き込む「入口」の一つにすぎません。入口が増えても、リポジトリが正しい状態を保っていれば困りません。
PCのツールは起動時に最新の状態を自動で取り込むようにしたので、iPhoneで書いた記事も続けてPCで編集できます。
実践へのつなげ方
「このツールを別の場所でも使いたい」と思ったとき、ツールそのものを動かす前に、そのツールが何をしているかがまず大切です。役割ごとに分けると、すでにある仕組みで置き換えられる部分が意外と多く、自分で作る部分は小さく済みます。
仕事でも、システムの移行や自動化の話になったときに使えます。「どの処理を、どこで、誰の権限で動かしているか」を一覧にすると、置き換えられる部分と、権限を絞るべき部分が見えやすくなります。
次に試すこと
外出先の空き時間にiPhoneで下書きを1本書き、夜にPCで仕上げて公開してみます。二つの入口を行き来しても記事が食い違わないか、実際の流れで確かめるつもりです。