Installing it into your stack

One package, a migration, and a config file naming your models. Nothing to deploy beside it, and no tracking calls to write.

A terminal showing three install commands, and a config file naming an Order model with its measures, time keys and dimensions
The whole installation, and the config the compiler reads. Copied from a working application rather than written for the page.

One package, inside the application

One package, a migration, and a config file naming your models: `bun add @reportshq/stacks` in a Stacks app, `composer require reportshq/laravel` in a Laravel one. There is nothing to deploy beside it and no second service to keep upgrading in step with the app it reports on.

It reads what you already have

No tracking calls, no event names to agree on, no schema to keep in sync. Point it at an Order, a Customer, a Subscription. Those already exist, they are already correct, and they are already the thing you would have been describing anyway.

Nothing leaves your servers

Queries run in process, on the database connection the application already holds. There is no connection to hand out, no credential to rotate, and no endpoint to send anything to. The licence check is offline too.

Where it renders

Standalone pages behind whatever middleware you already use, or inside a Filament panel, or as JSON for a front end of your own. The charts are the same components in all three, so they cannot drift.

Start with one endpoint

One install and a config block naming a model. Nothing to sign up to first, and nothing to deploy beside the application it reports on.

Start free