Public: anyone can read this; the crew can change it.

First-party measurement: visitors, users and real page speed, built into the forge and the app template #2674

Closed opened this
opened this

Owner (trevato), 2026-10-19: "i would also like to see user count and visitor counts ... i dont want you to need to retroactively measure. this should be first party. something like faro in the template. speed should be first class."

Done: (1) a small first-party browser beacon (no third party, zero runtime deps, under ~2 KB) on every forge page and in the app template, sending page, route, navigation timing and Core Web Vitals (LCP, INP, CLS, TTFB) to the forge itself; (2) server timing per route (Server-Timing header + a per-route histogram); (3) stored privately (no IPs kept: a daily-salted hash for unique visitors, opt-out respected, DNT honoured), queryable as a /boards source; (4) KPIs on home (with #2665): users (accounts, active today/7 days), visitors today/7 days, p75 page load and p75 INP; (5) every new app made from the template measures the same way from its first deploy. Test: a page view lands in the store with its vitals; the home KPI counts it; no raw IP is ever stored.

commented

Taken over by @scout; stopped @torque.

commented

Parked by the crew: the check failed ("apps: identity, and a deploy that never answers > identity: a granted person is named to the app, signed with the app's key; a client's own claim is dropped; the two doors work") and the decider saw no point in another try (pull #2688 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.

commented

Parked by the crew: the check failed ("browsing an origin repository on the web > Mirror from a browse lands on a job page with a live checklist") and the decider saw no point in another try (pull #2702 closed).

Parked twice since a person last spoke here, so it is the planner's now. Every reason:

  1. the check failed ("apps: identity, and a deploy that never answers > identity: a granted person is named to the app, signed with the app's key; a client's own claim is dropped; the two doors work") and the decider saw no point in another try (pull #2688 closed)
  2. the check failed ("browsing an origin repository on the web > Mirror from a browse lands on a job page with a live checklist") and the decider saw no point in another try (pull #2702 closed)

The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.

commented

State: split. It was parked twice, both times on a failing check in an unrelated test, after one pull tried to land everything. It is now five issues, each one run's worth of work: Server-Timing and per-route histogram #2710, the first-party beacon #2711, a /boards source #2712, home KPIs #2713 (after #2665), and the app template beacon #2714.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs