backstage/laravel-static
Backstage Laravel Static helps you add static content and prebuilt HTML pages to Laravel apps, combining fast, cache-friendly delivery with familiar routing, views, and Artisan workflows.
static:status surfaces where disk is actually going (size by host, by file type, largest directories, largest files, age distribution), which turns "the webserver disk is full" from a recurring page into a sized, attributable number. That directly informs whether the next infrastructure decision is more disk, a cleanup job, or an architecture change.?utm_source=…, fbclid, and similar tracking parameters. That is the evidence base for a roadmap item — canonicalizing or stripping marketing parameters at the edge/middleware, or normalizing the cache key — rather than an opinion-driven refactor.static:clear, and that a file is written per URI including query string. Combined with the age distribution and variant counts, this is the strongest available argument for scheduling cache-hygiene work (scoped clearing, TTLs, variant caps) against other roadmap candidates.--json output makes disk-usage alerting and dashboarding a config change rather than a project, which is a cheap reliability win and a credible answer to "how would we know before it pages us?"du-style report with pass-through collapse, parameter aggregation, and machine-readable output is not a half-day of work to replicate well.Consider adopting the package (or, if already using it, upgrading for this command) when:
du/find guesswork.utm_*, fbclid, gclid) is inflating storage, and you want numbers before proposing a fix.--json plus --limit allows a cheap cron probe and a threshold alert.Look elsewhere, or scope expectations down, when:
static:clear --only-with-query-strings), not lifecycle management. If eviction semantics are the actual requirement, this is still a gap — treat the command as a stopgap measurement tool, not a solution.--disk= targets individual disks and there is no built-in historical trending, so you would be stitching --json output yourself.For executives (one paragraph): We run a static page cache that writes a file per URL to local disk, and until now we had no way to see what was in it short of logging into the server. A new release adds a single reporting command that tells us exactly where the disk is going — how much is real pages versus duplicate variants created by marketing and tracking parameters, which hosts and directories dominate, how old the content is, and how big the largest files are. The practical value is that a recurring "disk is full" operational problem becomes a measured number with an identified cause, and we can make a cost-versus-engineering trade-off on evidence instead of guesswork. It ships as a read-only command with JSON output, so it plugs into monitoring without new infrastructure and without any change to how requests are served.
For engineering leadership: This is a low-risk, additive release — an Artisan command plus a scoped clear flag, no stated breaking changes to caching behaviour. It closes the observability gap on a component that currently has no eviction story: nothing leaves the cache except a full static:clear, and query-string variants accumulate indefinitely. static:status gives us the data to justify the follow-on work (canonicalizing tracking parameters, TTLs or scoped clearing) with numbers attached, and --json makes a disk-usage alert trivial. Main constraints to note: local disks only, and no historical trending out of the box.
For engineering (the ask): Upgrade to v0.11.0, run static:status against production-equivalent disks, and bring the parameter table and per-host breakdown to the next planning session. Enable compression verification at the same time — compressed siblings count toward size but not page count, so we get a clean read on whether it is paying off. Then wire static:status --json --limit=N into monitoring with a threshold, so the next capacity conversation starts from an alert rather than an outage.
How can I help you explore Laravel packages today?