Speed Insights measures CLS, FCP, INP, LCP, and TTFB in your users’ browsers. The dashboard shows
P75, P90, P95, and P99 values by device, environment, time, and normalized route.
Enable collection
Add a collection policy to korve.yaml:
Korve always allows the managed project origin and active custom domains. Use allowedOrigins only
for other exact HTTPS origins. Apply the manifest as usual:
You can also manage the policy from the CLI:
Install the browser SDK
@korve-dev/speed-insights is release-ready in the repository but is not yet available from the
public npm registry. Do not add it as an npm dependency until anonymous registry installation
succeeds. The Korve platform currently uses the checked-out workspace package.
Mount one component near the root of a React application:
Plain browser applications can use the injector:
Call stop() when the application unmounts. Do not start more than one collector for a page load.
Privacy and limits
The SDK removes query strings and fragments before the beforeSend hook runs. It replaces common
numeric, UUID, email-like, and long token route segments with [param]. It does not send cookies,
user identifiers, IP fields, full URLs, referrers, browser fingerprints, DOM selectors, or session
replay data.
Each intake batch has a limit of 20 points and 32,768 bytes. Raw points expire after 30 days. Query
windows cannot exceed 30 days. A duplicate batch ID is stored and billed once.
Accepted batches enter a durable telemetry queue. The SDK retries the same batch ID and payload
after a temporary transport failure.
The saved sampleRate applies before storage and billing. The optional SDK sampleRate applies in
the browser and reduces uploads further. If both values are below 1, their rates multiply.
The first 100,000 data points for an organization each month are included. Each additional 100,000
points costs $0.30. There is no project fee. Lower sampleRate to reduce collection volume.
Query from the CLI
The REST API and MCP surface expose speedInsights.get, speedInsights.update, and
speedInsights.query. Browser intake is SDK-only and is not an MCP operation.