私だけのブログを作る
理想的なブログの条件は何か
私の空間を夢見て
漠然と「自分のブログが一つあったらいいな」とよく思っていた。自分が何をしたのか記録し、共有し、交流し、この広いインターネットの片隅に自分の所有する小さな工房を開く想像。そうしていけば、自分も少しずつ成長できるのではないかという期待のようなものもあった。
考えているだけではもったいないので、何度か試みもした。メモ帳に書いたりプラットフォームを借りて始めたりしたが、長続きしなかった。機能が気に入らなかったり、すぐに興味を失ったり、あるいはただ面倒になって中途半端になってしまったり。今回は少し違うやり方をしてみることにした。本当に、自分が満足できるブログを作ろう。自分で整理し、長く維持できて、自分の思い通りに扱えるそんな空間を。
理想的なブログとは
人それぞれ理想のブログの姿は違うだろう。しかしこれまでの様々な試行錯誤を振り返り、結局自分に合うブログの最低条件は以下の4つにまとめられた。
1.コストの最小化
文章を書くことだけでも頭が痛くなるのが事実だ。ブログを運営するのに金銭的な心配をしていてはどうにもならない。サーバーを自分で運営したり費用を支払ったりするのはご遠慮したい。無料であればありがたい。できれば一生無料で。
2.データと権限の保持
これまで突然終了したサービスはどれほど多かったか。韓国のサイワールド(Cyworld)もそうだし、イグルス(Egloos)もそうだった。どんなに今ユーザーが多くてうまく運営されているサービスでも、10年、20年経ったときに残っているかは誰にもわからない。
百歩譲って100年間サービスが保証されるとしても、何らかの規約変更やビジネス上の意思決定によりコンテンツが制限されたり、使っていた機能が縮小・変更されることは自分の望むところではない。
3.カスタマイズ
ブログのデザイン面、機能面を自分の望む通りにコントロールできなければならない。広告を貼ったり多言語対応をしたり、どんな機能を追加・修正するのも簡単でなければならない。やりたいように、感じるままに。
4.書くことが簡単であること
文章を書くのはいつも難しい。しかし最低限、簡単に始められなければならない。いつでもどこでも、思い浮かんだときにすぐ書いて消せること。スマホでもタブレットでもデスクトップでも、環境に左右されず作業できなければならない。
究極のソリューション
こうした条件をすべて満たす方法は多くない。私が選んだのはGitHub Pages + SvelteKitの組み合わせだ。
Github Pages
GitHubではアカウント名のリポジトリを作成して静的サイトを無料でホスティングできる。公開されたサイトは username.github.io
形式でアクセスでき、URLを見ればわかるように、このブログもそうして作られている。GitHubリポジトリでソースコードを見ることができる。
もちろんGitHubも企業が運営するサービスであり、予期せぬ障害や永久的なサービス終了もあり得る。しかし幸いなことに、こうした事態を防ぐためにマイクロソフトのデータセンターにお祈りしたり、深夜にGitHubの神様に生贄を捧げる必要はない。なぜならGit自体が分散型バージョン管理システムだからだ。GitHubが消えても、自分のローカルリポジトリにすべての内容がそのまま残っている。
もしもっと確実にしたければ、Giteaのようなオープンソースを活用して自給自足のGitサーバーを作り、バックボーンを運用することもできる。軽量なのでラズベリーパイでもよく動く。実際この段階まで来ると、ほぼ技術的自立農場レベルだ。
このような構造は単にブログを運営することを超え、自分のデータとツールに対する主導権を持つための重要な基盤となる。
HugoやJekyllを使わなかった理由
GitHub Pagesを使って単純に投稿だけのブログを作りたければ、hugo
やjekyll
を使うのが一般的により良い選択だ。しかし私は単なるブログを超えて、自作のウェブベースツールを配布したり、多言語投稿やカスタムコンポーネントなど多様な機能をサポートしたかったため、それを考慮すると自分で作るほうが適していた。そしてそれが面白くないか?
なぜSvelte Kitなのか?
自分でフロントエンドフレームワークを扱いSSG(Static Site Generation)ベースのブログを作りたいなら、AstroやNext.jsのようなフレームワークも十分良い選択だ。特にNext.jsはエコシステムも大きく資料も多く企業用にも広く使われているため、より「安全な」選択かもしれない。
しかしブログは会社から要求される製品ではなくあくまで個人プロジェクトであり、それは機能の多寡や性能指標は考慮事項ではないという意味だ。
趣味です。尊重してください。
SvelteKitの深い紹介はこの記事の目的に合わないので次の機会に譲る。代わりに私がSvelte/Kitを好きな4つの理由を紹介して締めよう:
- バンドルが小さく軽い
- 比較的シンプルで、Plain JSに親しい
- ビューとロジックのより明確な分離
- 低い敷居と簡潔な文法
もしまだSvelte / Svelte Kitを使ったことがなければ、一度試してみてほしい。美味しい。
マークダウン + 自動化
このブログはマークダウン形式で文章を書いている。そして私たちにはObsidianという素晴らしいマークダウンベースのメモアプリがある(しかも無料だ)。多様なプラットフォーム対応はもちろん、プラグインのエコシステムも充実している。何より気に入っているのは、すべてのデータがローカルに保存される点だ。
私の場合はすでに数年前からObsidian Syncを購読していてすべての端末に自動で同期される。おかげでいつでもどこでも自由に文章を書いて消せる環境が完成した。ここにObsidian GitプラグインとGitHub Actionsを活用すれば、ローカルで保存したマークダウンファイルが自動でコミットされ、自動でデプロイされる。
つまり、文章を書いて保存するだけで完了。手を加える必要がない。
マークダウンで書き、Obsidianで管理し、GitHub Actionsで自動デプロイ。 これ以上に怠けられるだろうか?
ただしこの自動化作業はまだ終わっておらず、少しずつ手を入れて整えている途中だ。
詳しい設定や構成方法は後日続編の投稿で 軽い付録のように別途扱う予定なので興味があればブログを頻繁に訪れてほしい。
この過程を通じて私は最初にまとめたブログの条件、
- コストの最小化、
- データと権限の保持、
- カスタマイズ、
- 書きやすさ
の4つの基準をすべて満たすことができた。機能的にはこれ以上ない理想的な構造だ。
それでもなお
この記事の副題は「理想的なブログの条件とは何か」だった。しかし振り返れば、自分が悩み整えたのは実は 「理想的なブログというより、理想的なツールの条件」 に近かった。
こんなに一生懸命作ったブログがあっても、文章を書かずに放置すれば結局は埃をかぶったメモ帳になるだけで、
このブログを真に自分の理想のブログにするのは自分次第なのだ。