ヘッドレスCMSの危うさ
ヘッドレスCMSでブログのデータを失いました。今回はその失敗談について書いていこうと思います。
このブログはRailsを通して静的サイトジェネレーターのEleventyを実行して更新するスタイルを採用しています。そのおかげでテキストエディタを開く必要がなくなりましたが、テキストとして保存するという習慣はある種自然とバックアップが取れているという意味でもあります。ブラウザのテキストエリアはよくもわるくもデータは送信するまで残らないので誤操作でデータを簡単に失ってしまう可能性があるわけです。
何が起こったのかというと、このサイトとは別にStrapiというプロジェクトを利用してブログを始めようと思いました。StrapiそのものはSQLの知識がなくても、ブラウザ上でテーブルにカラムを追加したりOne-to-ManyやMany-to-Manyのカラムを設定することができます。また、WYSIWYGエディタやファイルのアップローダーもあるので自分で何かしらプロジェクトを作り始める必要はありません。
Strapi自体は直感的な操作でとても使いやすいプロジェクトだと思っていて、ラピッドプロトタイピングでこれに敵うものはなかなか見当たりません。 それくらい信頼しきっていたのですが、最初の投稿を書きおえてSaveボタンを押したら急にLoginページにリダイレクトしてしまいました。 Railsなど特に余計なことをしなければタブを閉じる前にブラウザの戻るボタンを押せばフォームの内容が残っていたりするものなのですが、GitHubで星が26.8Kもついてるプロジェクトなのでリダイレクトの処理はしっかりしていますね。
もちろん事後にならいくらでも対策の余地は出てくるのですが、そこまでして使いたいプロジェクトかというと微妙です。 プロトタイプを用意するのに重宝したいのですが、これを本番運用していく予定は私のなかではなくなってしまいました。 それなら面倒だけれどもやっぱりこのまだまだ改善の余地があるこのエディタを改良していくほうがいいと思いました。
そういうわけで、自動でバックアップする機能を実装するならWordPressのようにDBに保存してもいいでしょうし、window.localStorage
にリビジョンを残すなど実装したいアイデアはいくらでもあります。しかし、一度失った投稿はもう二度と戻らないし、同じようなものを書く気力はごっそり失われてしまうので、こういった悲劇を起こさないためにもヘッドレスCMSないし、動的にファイルを入力していくときは最悪データを失う可能性を念頭に置かないといけないなぁと思いました。