Problem
page_views/sessions carry region and city columns (migrations 0000000003/0000000005; models app/Models/PageView.ts:61-62, app/Models/Session.ts:41-42), and the shared tracking package ships a full city + lat/long geo service (@ts-analytics/tracking .../geolocation.d.ts:49-54). They are currently unpopulated — /collect only sets country (routes/analytics.ts:206-232, app/Analytics/tracking.ts:42-47) — but the capability is a loaded gun.
Why it matters (privacy-first)
Country-only geo is a core differentiator — it keeps us stricter than Plausible/Fathom, which both moved to city-level. Leaving city/region wired-but-dormant risks a silent regression below the purist line.
Proposed fix
Drop the region/city columns (or hard-gate them behind an explicitly-off, documented flag) and never call the city/lat-long geo service. Codify "country-only" as an invariant.
Priority: P0.
From the 2026-07-20 privacy-first competitive audit (vs. Plausible / Fathom / Simple Analytics / Umami).