このブログ(Nekodesk)は、手で作業する部分をできるだけ減らして、AI に頼みながら運営する前提で作りました。 どういう構成にしたか、何を入れなかったかを書いておきます。
先に決めたこと
- 記事とメモは、Git の Markdown ファイルだけで管理する
- 公開は「下書き → 自分が承認 → マージ → 自動デプロイ」の順
- 管理画面は作らない。作業は AI にチャットで頼む
- AI の API は、サイトの中では使わない
構成
| 役割 | 使ったもの |
|---|---|
| サイト | Astro(静的に書き出す)と Tailwind CSS |
| 配信 | Cloudflare(Workers の静的アセット) |
| 自動化 | GitHub Actions |
| 開発環境 | Node.js の最新 LTS、パッケージ管理は bun、バージョン固定は mise |
ビルドして HTML にしたものを置くだけなので、 データベースもサーバーのプログラムもありません。 壊れるところが少なくて、費用も小さく済みます。
最初は Next.js も考えました。 ただ、AI に頼んで運用するなら、動的な機能は要らないな、と思って Astro にしました。
記事の置き方
記事は、1 本ごとにフォルダを作って、本文の index.md と画像を一緒に入れてます。
content/
notes/ ネタ帳(公開しない)
drafts/ 執筆中
articles/ 公開済み
products/ 紹介する商品の情報
ネタは notes/ から始まって、drafts/、articles/ と進みます。
公開は、フォルダを articles/ に移すだけです。
公開の流れ
- AI が下書きを作って、
drafts/に置く - 自分で読んで、直して、OK を出す
devブランチで、確認用のサイト(dev.nekodesk.net)を見るmainにマージすると、GitHub Actions が本番にデプロイする
OK を出す前に公開されることはありません。
ちょっと工夫したところ
画像の個人情報
スマホの写真には、撮った場所(GPS)などの情報が入ってます。 そのまま載せると、場所が分かってしまいます。
なので、画像は専用のコマンドを通してから使います。 向きを直して、サイズをそろえて、メタデータを消すやつです。 Astro が出す WebP にも GPS が残らないか、GPS 付きの試験画像で確認しました。 残ってませんでした。 元の写真には情報が残ってるので、元の写真はリポジトリに入れてません。
広告の表記
記事に商品の紹介を入れると、記事の頭に「PR」の表示が自動で出ます。
アフィリエイトのリンクには、rel="sponsored nofollow noopener" も自動で付きます。
書き忘れで表記が漏れる、というのが怖かったので、人が気をつけなくていい形にしました。
入れなかったもの
- データベース: 記事は Git で足りるので、いまは要りません
- 管理画面: 作業はチャットで済むので、作ってません
- AI の API: サイトの中では使いません。AI にやってもらうのは、作業のときだけです
- コメント欄: いまは入れてません。必要になったら考えます
必要になったら、理由を書いて足すつもりです。