20 × 20 の原稿用紙で綴る日記

400字日記

一日の終わりに、四百字だけ書く日記です。縦書きの原稿用紙に綴り、公開したい日だけを公開できます。ソースコードを公開しているので、fork して自分の日記として使えます。

見本の日記 0 / 400

朝、窓を開けたら金木犀の匂いがした。駅までの道をいつもより少しだけ遠回りして、川沿いのベンチで缶コーヒーを飲んだ。仕事は思ったより早く片づいたので、帰りに本屋へ寄って、前から気になっていた文庫本を一冊買った。夜は今年はじめての鍋にした。四百字は短いようで、一日を思い出すにはちょうどいい長さだと思う。明日もひとつ、書きたいことがある日になるといい。

画面

どれも見本の日記で撮った、実際の画面です。

公開した日記のページ。若草色の背景に縦書きの本文があり、金木犀の絵を避けて文字が回り込んでいる 夜の配色の、公開した日記のページ。深い緑の背景に縦書きの本文があり、金木犀の絵を避けて文字が回り込んでいる
公開した日記読む人が見るページです。写真を置いた場所に合わせて、文字が回り込みます。
日記を書く画面。薄いオレンジ色の原稿用紙に縦書きで本文が入り、上に日付と背景色、下に気分と操作のボタンが並ぶ 夜の配色の、日記を書く画面。茶色の原稿用紙に縦書きで本文が入り、上に日付と背景色、下に気分と操作のボタンが並ぶ
書く原稿用紙のマスに縦書きで書きます。日付、背景色、気分もここで選びます。
トップページ。1 年分のヒートマップに気分の色が並び、その下に日記のカードが横に並ぶ 夜の配色のトップページ。1 年分のヒートマップに気分の色が並び、その下に日記のカードが横に並ぶ
振り返るトップページには、気分の色で塗った 1 年分のカレンダーと、日記のカードが並びます。

できること

書くのは書き手ひとり。読む人は、公開した日記だけを読めます。

縦書きの原稿用紙

20×20 のマスに縦書きで書きます。書けるのは 400 字まで。音声入力でも書けます。

1日1件

日記は日付ごとに 1 件です。今日の日記がもうあるときは、次に空いている日の日記として書きはじめます。

下書きと公開

公開したあとも下書きを直せます。公開し直すまで、読む人には前に公開した版が見えます。

気分と背景色

その日の気分を 6 種類から選び、背景色を 12 色のパステルから選べます。

嬉しい 穏やか 悲しい 怒り 不安 楽しい
写真

写真をドラッグで好きな位置に置けます。文字は写真を避けて回り込みます。

カレンダー

GitHub のようなヒートマップと月のカレンダーで、気分の移り変わりを振り返れます。

自分の声で読み上げ

Gemini の音声複製で登録した自分の声で、日記を読み上げます。読む人にも聞かせるかは、日記ごとに選べます。使うかどうかは任意です。

書き出しと配信

すべての日記を Markdown の zip で書き出せます。RSS と、SNS で共有したときのカード画像も出します。

自分の日記として使う

fork して、自分の Cloudflare アカウントにデプロイします。コードは書き換えません。

必要なもの

  • Cloudflare のアカウント
  • GitHub のアカウント(fork 用)
  • Node.js 22 以上と pnpm が入った macOS か Linux のパソコン(Windows は WSL2 で)
  • 読み上げを使うなら、有料枠の Gemini API キーと自分の声の ID

Cloudflare で使うもの

Pages
日記のサイトを配信する
D1
日記の本文を保存する
R2
写真・音声・カード画像用のフォントを置く
Access
書き手だけがログインできるようにする

費用

Pages・Workers
無料枠1 日 10 万リクエストまで。1 回の処理に使える CPU 時間は 10 ミリ秒までです。
D1
無料枠保存は 5 GB まで。読み込みは 1 日 500 万行、書き込みは 1 日 10 万行までです。
R2
無料枠毎月 10 GB まで保存できます。ただし R2 を使いはじめるには、支払い方法を登録して R2 を有効にする必要があります。
Access
無料枠Zero Trust の Free プランで、50 ユーザーまで使えます。書き手ひとりなら足ります。
読み上げ(任意)
Gemini API の有料枠が必要で、使った分だけかかります。今使っているモデル(gemini-3.8-flash-tts)は、音声 100 万トークンあたり $9 です(2026 年末まで。2027 年からは $18)。

個人の日記の量なら、無料枠に収まる規模です。作者の日記(diary.orukubami.sh)も、カード画像の生成を含めて、Workers の無料プランで動かしています。

2026 年 10 月時点の公式の料金表によります。最新の料金は Workers・D1・R2・Zero Trust・Gemini API の各ページで確かめてください。

流れ

  1. fork して、設定ファイルを作る ひな形 wrangler.toml.example をコピーして、自分の値を入れていきます。このファイルは git に入りません。 入れる値の一覧
  2. D1 と R2 を作る 日記の保存先と、写真などの置き場所を作ります。 手順書の該当箇所
  3. カード画像用のフォントを R2 に置く 最初の 1 回だけです。 手順書の該当箇所
  4. デプロイする ここでサイトの URL が決まります。 手順書の該当箇所
  5. Cloudflare Access でログインを設定する Cloudflare のダッシュボードで行います。ログイン用の URL も、ここで好きな名前に決めます。最後に出るチームドメインと AUD タグを設定ファイルに入れます。 手順書の該当箇所(画面ごとの画像つき)
  6. 読み上げのキーを登録する(任意) Gemini API キーと声の ID を、Cloudflare Pages のシークレットに登録します。 手順書の該当箇所
  7. もう一度デプロイして確かめる ログイン用の URL を開いてログインし、「日記を書く」が出れば完了です。画面にログインへのリンクは出ないので、この URL はブックマークしておきます。 手順書の該当箇所

やめるときは、日記をエクスポートで手元に残してから、Pages・Access・D1・R2 の順に消します。

手順書の片付け方