ls ./archive --calendar
Archive
Browse posts by publication date. Click a post title inside a date cell to open it.
cal --month 2026-06 # 2026-06
Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
03
04
05
06
07
08
09
10
11
D1 Migrations Can't Go Back: A Rollback Strategy for Forward-Only SchemasRender-After-Mount Without setState: Fixing React's setState-in-effect Warning with useSyncExternalStorePreventing "Deploy Succeeded but Nothing Changed" on Cloudflare WorkersPasswordless Admin Auth with Cloudflare Turnstile + Email OTPJapanese Full-Text Search on D1 (SQLite): FTS5 Trigram with Layered FallbacksBuilding a Blog on Cloudflare Workers + D1 + Next.js: Architecture and Design DecisionsRefactoring Without Breaking: Guardrails From a Full-Codebase Cleanup
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Thu, 06/11/2026 → D1 Migrations Can't Go Back: A Rollback Strategy for Forward-Only SchemasThu, 06/11/2026 → Render-After-Mount Without setState: Fixing React's setState-in-effect Warning with useSyncExternalStoreThu, 06/11/2026 → Preventing "Deploy Succeeded but Nothing Changed" on Cloudflare WorkersThu, 06/11/2026 → Passwordless Admin Auth with Cloudflare Turnstile + Email OTPThu, 06/11/2026 → Japanese Full-Text Search on D1 (SQLite): FTS5 Trigram with Layered FallbacksThu, 06/11/2026 → Building a Blog on Cloudflare Workers + D1 + Next.js: Architecture and Design DecisionsThu, 06/11/2026 → Refactoring Without Breaking: Guardrails From a Full-Codebase Cleanup
cal --month 2026-05 # 2026-05
Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
26
AdBlock有効時にブログ本文を見せない実装メモHermes AgentをDiscordとターミナルで使う:自分の開発環境に住むAI秘書Hermes Agentのスキルとメモリ:AIに毎回同じ説明をしないための仕組みClawpatchとHuskyでpush前に品質チェックをかけるこのブログに使っている技術:Next.js 16、Vinext、SearXNG、Crawl4AIAdSenseのslot IDをURLと広告コードから設定する手順Nix Home Manager入門:サーバーの開発環境を宣言的に育てるflake.nixとdirenvでプロジェクトごとの開発環境を自動化するOracle Cloud Free Tierで作る常時稼働サーバー:Ampere A1の使いどころOracle Cloud + Tailscale + Cloudflareで個人サービスを安全に運用するAI記事作成ワークフロー:検索、下書き、編集、公開を管理画面にまとめるNext.js 16 + vinext + CloudflareでブログCMSを作る設計メモ
27
28
29
30
31
Wed, 05/27/2026 → auditはpush前にかける:依存関係チェックを品質ゲートへ入れるWed, 05/27/2026 → minimumReleaseAgeは1440分:新しすぎるnpmパッケージをすぐ入れないWed, 05/27/2026 → Expoアプリのリリース手順:EAS BuildからApp Store / Google Play提出までTue, 05/26/2026 → AdBlock有効時にブログ本文を見せない実装メモTue, 05/26/2026 → Hermes AgentをDiscordとターミナルで使う:自分の開発環境に住むAI秘書Tue, 05/26/2026 → Hermes Agentのスキルとメモリ:AIに毎回同じ説明をしないための仕組みTue, 05/26/2026 → ClawpatchとHuskyでpush前に品質チェックをかけるTue, 05/26/2026 → このブログに使っている技術:Next.js 16、Vinext、SearXNG、Crawl4AITue, 05/26/2026 → AdSenseのslot IDをURLと広告コードから設定する手順Tue, 05/26/2026 → Nix Home Manager入門:サーバーの開発環境を宣言的に育てるTue, 05/26/2026 → flake.nixとdirenvでプロジェクトごとの開発環境を自動化するTue, 05/26/2026 → Oracle Cloud Free Tierで作る常時稼働サーバー:Ampere A1の使いどころTue, 05/26/2026 → Oracle Cloud + Tailscale + Cloudflareで個人サービスを安全に運用するTue, 05/26/2026 → AI記事作成ワークフロー:検索、下書き、編集、公開を管理画面にまとめるTue, 05/26/2026 → Next.js 16 + vinext + CloudflareでブログCMSを作る設計メモMon, 05/25/2026 → 最近考えていることを残す場所Sun, 05/24/2026 → ブログを続けやすくするための整理