Five kinds of data
None of it is commerce truth. A browser event never creates or repairs an Order, a Payment, an Inventory count, a Loyalty balance, revenue, or GMV. When a dashboard and the database disagree, the database is right.
Logs
The Store Runtime writes Next.js and application logs to standard output.- In Docker Compose, use
docker compose logs -f store. - On Vercel, use the project’s log view or
vercel logs. - On Railway, use the service log view.
Error reporting
Set a DSN and unhandled errors reach a Sentry project you control:.env
managed-runtime-diagnostics-v1 in 86D_TELEMETRY. It sends a bounded health and error contract to a disclosed 86d endpoint. It does not send Shopper behavior, commerce events, or your sales figures.
Sending events to your own tools
Third-party Analytics pushes selected Storefront events to services you picked. Set your Google Tag Manager container:.env
dataLayer when the container exists. Whether Tag Manager forwards them to GA4 or anywhere else is your configuration, not 86d’s.
Event names include view_item, add_to_cart, begin_checkout, and purchase. Every one of them is a report, not a record. A purchase event in the browser proves a script ran. It does not prove a Payment settled or an Order exists.
The Analytics Module
@86d-store/analytics records Storefront Analytics events in your Store’s database and renders funnel views for you.
Audit records
@86d-store/audit-log holds administrative records for one Store Runtime.
An append-oriented table is not a tamper-evident audit trail, and it is worth being precise about that with anyone who asks. A Stable audit record needs a server-authored actor, scope, target, action, outcome, and approval provenance, with access controls that have been tested. That is not where this Module is today.
Health endpoint
Every Store Runtime serves one:Local diagnosis
86d doctor reports pass, warn, or fail for runtime prerequisites, environment variables, database connectivity, generated files, and TypeScript configuration.