自分だけのブログを作る
理想的なブログの条件は何か
この投稿は元々韓国語で書かれており、LLMを使用して日本語に自動翻訳されています。翻訳エラー、タイプミス、または文脈上奇妙な部分がある可能性があります。
自分の空間を夢見て
漠然と「自分のブログがひとつあればいいな」とよく思っていた。自分が何をしたか記録し、共有し交流し、この広いインターネットの片隅に自分の所有する小さな工房を構える想像。そうしていけば、自分も少しずつ成長できるのではないかという期待のようなものもあった。
考えているだけではもったいないので何度か試みもした。メモ帳に書いたりプラットフォームを借りて始めたりしたが長続きしなかった。機能が気に入らなかったり、すぐに興味を失ったり、あるいはただ面倒になって中途半端になってしまったりした。今回は少し違うやり方でやってみようと思った。本当に、自分が満足できるブログを作ろう。自分で整理し長く続けられ、自分の思い通りに扱えるそんな空間を。
理想的なブログとは
人それぞれ理想的なブログの姿は違うだろう。しかしこれまでの様々な試行錯誤を振り返り、結局自分に合うブログの最低条件は以下の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
を使うのが一般的により良い選択だ。しかし私は単なるブログを超えて自作のウェブベースツールを配布したり、多言語投稿やカスタムコンポーネントなど多様な機能をサポートしたかったため、それを考慮すると自分で作る方が適していたし、それの方が面白いではないか。
なぜSvelteKitなのか?
フロントエンドフレームワークを自分で扱い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つの基準をすべて満たすことができた。機能的にはこれ以上ない理想的な構造だ。
それでもなお
この記事の副題は「理想的なブログの条件とは何か」だった。しかし振り返れば、自分が悩み整えたのは実は 「理想的なブログというより、理想的なツールの条件」 に近かった。
こんなに一生懸命作ったブログがあっても書かずに放置すれば結局は埃をかぶったメモ帳になるだけで、
このブログを真に自分の理想のブログにするかどうかは自分次第なのだ。