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.
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