React Analytics
The declaration is small and complete: name, retention_days, write_key_name. Retention as a reviewed line ends the two classic analytics drifts — data kept forever because nobody set a limit, and history lost because a vendor plan changed. Changing it is a plan-visible edit like any other.
In the React code, instrumentation is deliberately unglamorous: send named events with the properties the product questions need, from the moments that matter (activation, first value, invite sent). Because the store is the project’s, joining events to product tables later — which users who did X also did Y — is an export away, not a vendor negotiation.
The sovereignty angle is why many teams arrive here first: no third-party tracker domain, no consent-banner special cases for an external processor, events in the same European zone as the rest of the product. Measurement stops being the exception to the architecture.
CLI
Plan React Analytics, then deploy.
kernstack plan
kernstack plan
kernstack deploy Frequently asked questions
It is a write-only project key by design — it can append events and read nothing. Keep event schemas disciplined (no secrets, no personal data you would not want in an event stream) and rotate by changing the declared key.
Yes — the analytics data belongs to the project and is exportable, so product questions join events to tables on your terms instead of stopping at a dashboard’s prebuilt funnels.
Long enough for year-over-year product questions, short enough to honour your privacy commitments — 400 days is a common deliberate choice. The point is that the number sits in stack.json where a reviewer can challenge it.
Related capabilities, architectures, and comparisons
Ship your stack on the Software Lifecycle Cloud.
Closed preview on dedicated European infrastructure. Bring a repository or start from a blueprint.