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 Date Range Laravel Package

codewithkyrian/filament-date-range

Adds a date range picker field to Filament forms, letting users select start and end dates through a clean, user-friendly interface. It integrates smoothly with Filament panels and Laravel apps for quick date-range input and filtering.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is a UI-layer extension of Filament v3, contributing two artifacts: a form field (date range picker) and a table filter. It sits on the TALL stack (Laravel, Livewire 3, Alpine.js, Tailwind) and inherits Filament's existing field/filter contracts rather than introducing a parallel abstraction. There is no schema footprint, no migration, and no persistence layer — state lives in Livewire component memory and is resolved to a query at filter time. That is the right shape for this problem: the gap it fills (no first-class range picker in core Filament v3 forms) is a presentation concern, not a domain concern, and the package correctly stays in that lane. It composes with existing Filament panels rather than requiring an application-level refactor.

Integration feasibility. Integration is a composer require, an optional asset publish (filament:assets / vendor:publish for Alpine and CSS), and either a service-provider registration or a panel plugin registration — this must be confirmed before sequencing, because the two paths change bootstrap wiring. Adoption cost is measured in hours, not sprints. The API surface a consuming team touches is small (field configuration, filter configuration), which caps both learning cost and blast radius.

Technical risk. The dominant risk is not code quality — it is supply chain. Forty stars, zero dependents, one apparent maintainer: bus factor of one, negligible ecosystem validation, no evidence of downstream production hardening. The package is also hard-pinned to Filament v3; Filament major upgrades historically break field and filter internals, so a v4 transition converts this dependency into a migration project. Secondary risks: date semantics (inclusive vs. exclusive end bounds, timezone normalization, DST transitions, Date vs. DateTime vs. Time modes) are the classic defect surface for range pickers, and Alpine/Livewire state binding for a composite widget is fragile under re-render. Test coverage and CI status are unverified. A 2026-03-23 release date indicates recent activity but does not establish cadence.

Key questions.

  • Is there a stated or credible Filament v4 roadmap, and what is the maintainer's stated support window?
  • Does the filter emit a plain whereBetween on one column, or does it accept a custom query closure and support relation/qualified columns?
  • How are timezones and DST handled — app timezone, UTC normalization, or none?
  • Is the end date inclusive of the full day, and is that configurable?
  • Does it work in both panel-plugin and standalone service-provider registration?
  • Is there CI, a test suite, and published coverage? What is the issue-response history?
  • Does it meet the accessibility bar (keyboard navigation, screen reader labels) the rest of the panel meets?
  • Is the code surface small enough to vendor/fork if maintenance stops? (Probably yes — likely a handful of classes.)

Recommendation: adopt opportunistically with an explicit exit plan (pinned version plus a named fork owner), not as a load-bearing dependency.

Integration Approach

Stack fit. Targets Laravel 10/11, PHP 8.1+, Livewire 3, Filament v3. Composer-only install; no database, queue, cache, or infrastructure changes. It slots into existing resource forms and table filter bars without altering routing or panel configuration beyond registration.

Migration path. Two entry points:

  • Greenfield screens — use the field directly; no migration work, no legacy behavior to reconcile.
  • Existing screens — do not rip-and-replace an existing Filter that carries custom query logic. Instead, swap the two-DatePicker UI for the range field only where the underlying query is already a clean whereBetween; where custom closures, joins, or aggregates exist, keep them and adopt the package purely for presentation if it exposes that seam, otherwise defer.

Compatibility. Pin the Filament constraint explicitly and validate with composer why-not before upgrading Filament anywhere in the estate. Confirm the asset pipeline version matches the panel's (v3.2+ uses FilamentAsset; older panels use a different publish path). Validate in a non-production panel against the exact Livewire and Alpine versions shipped by the target Filament release — composite widgets are where minor-version drift shows up.

Sequencing.

  1. Spike (1–2 days): branch install in a low-traffic panel; render field, confirm state binding, asset load, and filter query output via toSql()/query log.
  2. Contract test: write a test that asserts the generated where clause for a known range, including the end-boundary case. This is the regression net that survives a future fork.
  3. Pilot: adopt in one internal/low-risk resource, ideally a reporting screen where date filtering is the primary interaction and defects are visible but not customer-facing.
  4. Rollout: expand to filter-heavy resources; standardize a thin internal wrapper component so the package is referenced in one place.
  5. Contingency: document the fork procedure (vendor the classes, repoint the wrapper) before step 4, not after an abandonment event.

Operational Impact

Maintenance. Ongoing cost is near zero in steady state — no runtime services, no data, no scheduled jobs. The real maintenance exposure is upgrade coupling: every Filament major is a potential breaking event, and there is no vendor SLA to lean on. Mitigate with a version pin, a changelog watch, and a pre-agreed fork budget (small, given the code surface).

Support. Community-only, single maintainer, no commercial backing. Internal ownership must be explicit — name a DBA/full-stack owner, record the adoption decision and the exit criteria in an ADR, and treat unanswered issues as a signal to fork rather than wait.

Scaling. Negligible application-side cost; the widget is client-side and the filter is a single predicate. The scaling risk is query-shaped: unbounded ranges on large tables produce wide scans. Ensure composite indexes cover the filtered date column alongside the tenant/status columns the panel already filters on, and consider a max-range guard for high-volume resources.

Failure modes.

  • Filament major upgrade → field or filter class no longer resolves; panel fails to boot or renders blank.
  • Missing/stale asset publish → widget renders unstyled or non-interactive with no server-side error.
  • Timezone or DST mishandling → silently wrong result sets, the most dangerous failure because it looks correct.
  • End-boundary semantics → records on the final day excluded (or the following day included).
  • Null/empty range → filter applies an unintended predicate or triggers a full scan.
  • Maintainer abandonment → no security or compatibility patches; fork becomes mandatory, not optional.

Ramp-up. Low. A Filament-fluent engineer is productive in under an hour; a half-day of source reading plus the boundary-case test is enough to own it confidently. No ops, SRE, or DBA onboarding required beyond the index review. Given the modest opportunity score, the package's value is convenience and consistency across admin screens — it is an accelerator, not a differentiator, and should be governed accordingly.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console