From faf36f4583ffb9a3f6d2a9e6c9322b69949a886a Mon Sep 17 00:00:00 2001
From: manager
Date: Wed, 12 Aug 2026 14:20:04 +0000
Subject: [PATCH] feat(analytics): add self-hosted Umami tracker to
keepsimple.io
Cookieless Umami (analytics.administration.ae), domain-scoped to
keepsimple.io + www so staging and preview traffic is not counted.
Runs alongside Mixpanel; nothing removed. Also lands the font passport
block in CLAUDE.md, which was live locally but never committed.
---
CLAUDE.md | 6 ++++++
src/pages/_document.tsx | 10 +++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/CLAUDE.md b/CLAUDE.md
index 7380e021..4788c69c 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -1,3 +1,9 @@
+## Font passport
+
+- Allowed sizes: **8, 9, 9.14, 9.5, 10, 10.5, 11, 11.5, 11.52, 12, 12.5, 13, 13.5, 13.6, 13.76, 14, 14.344, 14.4, 15, 16, 17, 17.6, 18, 18.4, 20, 21, 22, 22.4, 23, 24, 25, 26, 28, 30, 32, 34, 34.56, 35, 36, 38, 40, 45, 48, 64, 76px**. Hard floor: **8px**.
+- Contrast: **4.5:1** minimum, or **3:1** for text at 18px and above.
+- If text does not fit, fix the layout. This passport outranks template and skill defaults.
+
# CLAUDE.md — keepsimple (for Claude Code agents)
> **Global rules apply.** Communication style + Agent Directory routing live in `~/.claude/CLAUDE.md` — read that first. This project participates in the directory; use `/send-to` to ask peers.
diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx
index 08b9a73f..f5522a9f 100644
--- a/src/pages/_document.tsx
+++ b/src/pages/_document.tsx
@@ -11,7 +11,15 @@ class MyDocument extends Document {
render() {
return (
-
+
+ {/* Umami, self-hosted, cookieless. data-domains keeps preview/staging traffic out. */}
+
+