Static Astro 5 site for BlueCap Strategies with exact live-site content parity, deployed to k3s via GitOps (ArgoCD). - Page copy in Markdown content collections (services, focus-areas, pages, insights) with a Zod SEO schema enforced at build time - Homepage + About restored to exact live copy; real live-site imagery - Build-time SEO linter (scripts/seo-lint.mjs) and Playwright e2e suite - Multi-stage Dockerfile (nginx serves dist/) and Kustomize manifests (k8s/) - Per-agent robots.txt; config-driven PostHog + Umami analytics scaffold - ADRs and engineering docs under docs/ Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.6 KiB
ADR-0005: Visitor analytics — PostHog + Umami side-by-side trial
Status: Accepted — 2026-07-15
Context
The owner leans toward richer data (PostHog: autocapture, funnels, session replay) but the site is a low-traffic B2B advisory brochure with a Digital-ESG / low-energy positioning, and self-hosting PostHog is resource-heavy. Rather than decide in the abstract, the owner chose to trial both and compare. This is product/visitor analytics — distinct from the monylog ops telemetry (ADR-0004).
Decision
Run PostHog and Umami side-by-side initially to evaluate which fits. Recommended trial setup:
- PostHog — Cloud free tier (1M events/mo) rather than self-host, to avoid loading the homelab during evaluation; reverse-proxy ingest through our domain to reduce ad-blocker loss.
- Umami — self-hosted in k3s (lightweight, cookieless, no consent banner).
Both are wired through a single config-driven Analytics.astro component in BaseLayout, gated by
env vars, so either can be toggled and a winner kept without code churn. Track the same event set
in both (consultation-CTA clicks, per-service/focus CTA source, insights reads, contact submits).
Consequences
- Temporary dual instrumentation (slightly more script weight during the trial).
- Privacy/consent must cover the superset: PostHog (esp. session replay) likely triggers cookie-consent + privacy-policy obligations; add these before enabling PostHog in production.
- Decision criteria: insight value vs. weight/consent/ESG fit. Revisit with a follow-up ADR naming the winner and the retirement of the other.
- Detail in
docs/seo-aeo-optimization.md§6b.