Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Sidebar Resize Laravel Package

martin6363/filament-sidebar-resize

A lightweight Filament plugin that makes the admin sidebar resizable. Drag to adjust width, with configurable limits for a smoother, more flexible panel layout and better use of screen space.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: The package is a presentation-layer Filament panel plugin — a Plugin implementation registered in a panel provider, plus published assets and a config stub. There is no migration, no model, no route, no middleware, and no server-side persistence. That means it sits orthogonal to the application's data model, tenancy model, queue topology, and auth design, which is exactly where a TPM wants a UI nicety to sit: small surface, cheap to remove. The coupling it does introduce is to Filament's own sidebar markup and CSS classes, which are an internal, non-contractual surface. Filament minor and major releases have historically reworked panel chrome, so the integration is architecturally clean but structurally fragile at the seam that matters.

Integration feasibility: High and time-boxable. Estimated engineering effort for a competent Laravel/Filament developer is one half-day to one day: composer require, register the plugin on the target panel, publish config/assets, then visual QA. No ops coordination, no data backfill, no release-window dependency. The gating factor is not effort, it is version alignment — confirm the package targets the Filament major you actually run before spending any of that day.

Technical risk (ranked by what would actually hurt):

  1. Maintainer concentration / abandonment. Seven stars, zero dependents, a single-primary maintainer, and one drive-by contributor. This is snippet-scale open source, not infrastructure. It should be treated as forkable source we happen to consume via Composer, never as a dependency in a critical path.
  2. Upgrade fragility. CSS/DOM-coupled plugins fail silently on Filament upgrades — the grip vanishes or the drag stops working, and nothing throws. No error budget, no alerting, no test will catch it.
  3. Interaction regression in a core navigation affordance. The v1.0.1 release exists specifically because v1.0.0 broke scrollbar access in the sidebar. That is the exact failure class to expect again: an overlay intercepting pointer events on the nav, worst on short viewports. High severity, low detection probability without an explicit checklist.
  4. Persistence semantics may not match the marketing. The description says width is "persisted per user," but the mechanism is localStorage — which is per browser and per device, not per user identity. Users who switch machines or use private windows will lose their width. Nothing is broken, but expectations set by the README will not be met, and that gap lands on support.
  5. Low adoption signal. Zero dependents means no community-discovered edge cases: multi-panel scoping, RTL, mobile drawer, dark mode, and tenant switching are all unverified for us specifically. We would be paying the discovery cost.
  6. Standard supply-chain surface. A small package entering the panel boot path; ordinary Composer hygiene (exact pin, lockfile, review of the service provider) covers it.

Key questions to resolve before committing:

  • Which Filament major and minor is targeted, and are the constraints tight (^5.0) or permissive? The description says v5; earlier notes referenced v3/v4 — reconcile against our pinned version.
  • Is localStorage the only persistence, and is the key namespaced per panel/tenant, or global? Width leaking between panels or tenants is a plausible low-severity bug.
  • Is the resize grip keyboard-operable and screen-reader labelled, or pointer-only? This is a compliance question in some organisations, not a nice-to-have.
  • Does it respect Filament's mobile/collapsed drawer breakpoints, RTL, and dark mode out of the box?
  • Are assets registered through Filament's asset pipeline (upgrade-safe) or injected inline?
  • What is the maintenance posture — release cadence, issue responsiveness, willingness to merge PRs from outside contributors?
  • Is there any test suite or CI matrix across Filament versions, or is QA entirely manual?

TPM read: Approve a time-boxed spike on one internal, low-traffic panel. Do not adopt into a customer-facing or multi-tenant admin surface without a fork-and-vendor contingency written down first. The code volume is small enough that owning it is cheaper than tracking an unmaintained upstream — the decision to make now is not "yes/no" but "yes, with an exit we've already priced."

Integration Approach

Stack fit: Laravel 10/11/12 on PHP 8.1–8.3 with Filament as the admin layer. Zero database footprint, so it is compatible in principle with our persistence, queueing, and tenancy design, and it will not complicate a future Filament multi-panel rollout — provided panel and tenant scoping of the stored width is tested rather than assumed. The one place it touches our own conventions is theming: if we maintain custom CSS overrides on fi-sidebar, this package and our theme are now in the same blast radius.

Migration path: There isn't one, which is the whole argument. Adoption is additive — composer dependency, one plugin registration line, asset publish, visual QA — and rollback is the reverse, measurable in minutes. If we later want the capability without the dependency, the fallback is to vendor the ~small CSS/JS into our own panel theme: roughly one day, bounded and known. That bounded exit cost is what makes the experiment rational.

Compatibility: Pin an exact version (not ^1.0) and treat every Filament upgrade as a deliberate re-validation gate rather than an incidental one. Attach a named owner and a short manual checklist to the Filament upgrade runbook covering: sidebar scrollbar reachable on short viewports, grip drag works, collapsed/mobile drawer behaviour, dark mode, RTL if we support it, tenant/panel switching, and a fresh-browser default state. Because the failure mode is purely visual, automated coverage is not realistic — this is a runbook item, not a CI item.

Sequencing:

  1. Validate (0.5 day): read the source end-to-end (it is small), confirm Filament version constraints, confirm asset registration mechanism, grep for localStorage keys and inline styles that could collide with our theme, check the licence.
  2. Spike (0.5–1 day): install on a scratch or staging panel; run the full checklist above; capture before/after screenshots for the UX decision.
  3. UX and accessibility sign-off: confirm the grip is discoverable, does not compete with the sidebar scrollbar, and meets whatever keyboard/screen-reader bar our organisation sets. The v1.0.1 fix is direct evidence this is fiddly — budget for a second iteration.
  4. Pilot (1–2 weeks): one internal or low-traffic panel, no customer-facing exposure, feedback channel open.
  5. Decide: promote, fork, or drop. If promoted, record the fork point (commit SHA) in the dependency inventory and add the checklist to the upgrade runbook.

What we deliberately do not do: do not enable it across every panel at once; do not let it become a transitive dependency of a shared base panel without the same review; do not assume the version constraint protects against DOM-level breakage; do not let it reach a customer-facing panel before the pilot produces evidence.

Operational Impact

Maintenance: Ongoing cost is near zero while it works — no config surface, no migrations, no scheduled jobs, no storage growth. The real cost is episodic: each Filament upgrade requires a manual re-validation of a UI affordance, budget ~1 hour plus a named owner. Assign ownership to the team that owns the admin panel and its theme, not to platform or infrastructure, because any fix will be CSS/JS-level and will need someone who knows the panel's front-end conventions.

Support: No vendor, no SLA, no paid tier, no security-response commitment. Support is GitHub issues on a seven-star repository: assume best-effort, plan for none. Internally, the support path is a single engineer who has read the source and can patch or vendor it. Document who that is and keep the source checked out somewhere reproducible — otherwise the first regression becomes a scramble.

Scaling: Technically negligible — the work is entirely client-side rendering and pointer event handling, adding no requests and no measurable panel load cost. The scaling question is organisational: one shared sidebar behaviour across every admin user means a single regression is universally visible at once, and localStorage persistence does not follow users across devices or browsers. Set that expectation with stakeholders now so it does not surface later as a bug report.

Failure modes and mitigations:

  • Silent cosmetic regression after a Filament upgrade (grip gone, drag inert) — highest probability, no error thrown. Mitigate with the upgrade-runbook checklist and a staging panel that mirrors production's Filament version.
  • Navigation accessibility regression — the v1.0.0 scrollbar defect is the template: an overlay intercepting pointer events makes the sidebar unnavigable on short viewports. High severity, low detection likelihood. Mitigate by explicitly testing scroll behaviour on a short viewport before every promotion.
  • Upstream abandonment — no fix arrives for future breakage. Mitigated by the bounded ~1 day vendor-in cost, contingent on someone actually reading the source during the validate step.
  • Asset pipeline drift — published assets stale relative to the package version after a deploy, producing mixed versions across environments. Mitigate with a deploy step that republishes assets and a version marker visible in the built files.
  • Theme/interaction conflict — the most likely "works on staging, wrong in prod" cause if our themes differ from staging. Mitigate by spiking against the actual production theme, not a clean panel.
  • Expectation gap on persistence — users expecting their width to follow them across devices. Mitigate in the internal announcement, not in code.

Ramp-up: Very low for engineers — the entire package is readable in under an hour including the config stub. The ramp-up cost is documentation, not comprehension: we need a short internal note recording what the plugin does, which panels it is registered on, the pinned version and fork point, the known persistence limitation, and the re-validation checklist. That half-page is the difference between a cheap dependency and a future archaeology exercise, and it is the TPM's deliverable from this evaluation, not engineering's.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource