What a licence covers

On this page 5

Priced per installed application. Not per event, and not per seat.

Per event is impossible by design now: your data never reaches us, so there is nothing on our side to count, and metering your database from outside it would mean this tool reporting on how much you sell. Per seat would need the package to know who signs in to your application, which means reaching into your auth and keeping a count of your staff. Per application is the one unit countable from outside, obvious to a buyer, and it grows with an estate rather than with a good quarter.

The plans

FreeHobbyPro
Applications1310
ReportsUnlimitedUnlimitedUnlimited
People on the licence1325
Share linksYesYesYes
Scheduled emailYesYes
XLSX exportYesYes
Priority supportYes

app/Billing/limits.ts supplies pricing copy. It is not a runtime feature gate or a proof that every listed capability exists. The current Stacks package has CSV but not XLSX, sharing or scheduled delivery. The Laravel source implements CSV, XLSX, sharing and schedules, but its reporting rewrite has not yet been published on Packagist. Check release status before treating this table as an installation plan.

Reports are unlimited on every tier

Including free. A report runs inside your application, against your database, on your machine. Charging by the report would be charging for something we do not provide.

Nothing here gates a report

This is the part worth reading twice. An application over its allowance keeps working. Every number above describes what a licence covers, not what the software will do.

Two reasons, and the second is the honest one.

A reporting tool that blanks a dashboard over a billing state is a tool nobody can rely on for the dashboard. The moment it can go dark for a commercial reason, every number it shows carries an asterisk.

And it could not enforce this anyway. The licence is checked offline and there is no network call, deliberately: a package that phones home on boot has quietly told its vendor which applications are running, how often they restart and when they deploy. A licence check is not worth that. So the check verifies the key's shape, says so on the page when it does not match, and stops there.

See packages/laravel/src/License.php. It opens no sockets, and a test asserts that by reading the source for anything that could.

What counts as an application

One installation: one codebase, one database, one licence key. A staging copy of the same application does not count, and neither does a second environment. Three products is three applications.

Self-hosting

There is no other kind. The package runs on your servers either way, and a licence is what you are buying rather than access to somewhere. Leave REPORTSHQ_LICENSE unset and every limit above falls away; the pages say the installation is unlicensed and nothing else changes.

Released under the MIT License.