lukasccb/filament-balance-header
A Filament plugin that adds a balance header component to your admin panel, letting you display an account balance or credit total at a glance. Quick to install and configure for Filament v3 panels.
Architecture fit. lukasccb/filament-balance-header is a presentation-layer component that lives entirely inside the Filament panel chrome. It registers via a Filament panel plugin or render hook and outputs a formatted balance string into the topbar. There is no model, migration, service provider logic beyond registration, or persistence — it is a render concern, which is exactly the correct architectural scope for a header display. It fits well where a Filament admin already exists and there is an established source for the balance value (billing service, wallet table, or API). It does not fit if the balance needs ledger-derived correctness computed in the package — the package renders the number we hand it, so all business logic stays in our application.
Integration feasibility. Integration is sub-day. The package is dependency-light, needs no schema changes, and coexists with existing header widgets and actions. The real integration work is not the package but the data feed: deciding which balance source, which currency, which user context, and how to avoid a per-page-load API or query cost in the header (the header renders on every panel page). Confirm the Filament major version supported by the package against our pinned Filament version before committing — this is the primary blocking question.
Technical risk. Low but non-zero, and the risk is concentrated in maintenance, not runtime. The project is single-maintainer, has zero stars, is v1.x, and the latest release (v1.0.3, 2024-01-19) carries a bare compare link with no described changes. For a component this small, the technical failure surface is trivial and the exit cost (rebuild the header widget in-house, ~1 day) is near zero. The larger risk is implicit trust: if the displayed number drifts from the source of truth, users will read it as authoritative. Record it as a replaceable, non-strategic dependency, not infrastructure.
Key questions.
Stack fit. Requires a Laravel + Filament application. Outside Filament the package has no meaning. Inside it, the package is compatible with existing header widgets and actions, so it stacks additively rather than requiring a header redesign. Best fit is internal ops/support panels and early-stage credit/usage-based admin views where a dedicated billing admin UI is not yet funded.
Migration path. Treat as a greenfield addition to the panel provider: register the plugin (or render hook), wire in a balance provider, verify display. There is no data migration and no prior-component migration. The only "migration" concern is future removal: keep the registration isolated (one provider entry, one callable/balance resolver) so reimplementation in-house is a delete-and-replace, not a refactor.
Compatibility. Verify Filament major-version support explicitly against our pinned Filament version, and pin an exact package version in composer.json rather than a caret range. Given the sparse changelog, do not assume patch semantics on a single-maintainer project — gate every upgrade behind a diff review.
Sequencing.
Maintenance. Low ongoing effort but a real ownership assignment. Pin the version, review diffs on upgrade, and keep the integration isolated so removal is trivial. Because the project is single-maintainer with a thin release history, assume maintenance risk is on us, not upstream — budget the ~1-day reimplementation as the contingency, not a hypothetical.
Support. Support agents are the primary user population; the header's value is reduced context switching while handling tickets. Expect questions about why a number differs from the billing page — those are data-correctness questions, not package bugs, and they will route to whoever owns the balance resolver. Document the source of truth behind the header so support does not treat it as canonical.
Scaling. The component itself scales trivially (it is a render). The scaling concern is the balance resolver: it runs on every panel page load, so an uncached per-request call to a billing service or ledger query will become a latency and load problem. Require a cached/denormalized balance or a cheap lookup before rollout. Multi-entity and multi-currency requirements will exceed what a single formatted string in a header can express.
Failure modes.
Ramp-up. Near-zero for engineers familiar with Filament — an afternoon to register, wire a resolver, and verify. The TPM ramp-up is the framing, not the code: communicate to stakeholders that this is a free, low-risk display add-on, single-maintainer and early-version, appropriate for internal admin convenience only, with effectively zero exit cost; pilot it, pin it, and keep it out of customer-facing and regulated surfaces.
How can I help you explore Laravel packages today?