buildix/timex
Timex is a lightweight Laravel package for working with dates and times. It offers expressive helpers for formatting, timezone conversion, durations, and human-readable differences, making scheduling and time-based logic cleaner, more consistent, and easier to test across your application.
Architecture fit. Unchanged. buildix/timex is a Filament plugin that adds calendar rendering to a Laravel admin panel: a service provider, a Filament plugin contract implementation registered on a PanelProvider, and a Livewire component/Blade view wrapping a client-side calendar library. Fit remains high if and only if the target application already standardizes on Filament as its admin layer. It is a presentation-layer package — no event model, no scheduling engine, no iCal ingestion — so it is a UI accelerator, not infrastructure. Teams not on Filament get zero value.
Integration feasibility. Low mechanical effort, high verification effort — but release 1.1.7 materially moves the first gate. The single line item, "Fix Laravel 10 composer require," tells us the previous release failed dependency resolution on Laravel 10 and that this has been corrected. That eliminates the cheapest and most common failure mode: a composer install that refuses to resolve. Practically, this means the Phase 0 spike will now likely install on a Laravel 10 application rather than aborting at the solver.
That is a genuine improvement, but it is a narrow one, and it shifts the risk rather than retiring it. A composer constraint fix says nothing about Filament's plugin contract, Livewire's component lifecycle, or the asset pipeline. The more dangerous outcome is now the likelier one: a clean install followed by a panel that fails to boot or renders an empty page. A solver error is a five-minute answer; a runtime contract mismatch in a registered Filament plugin is a debugging session against an unfamiliar and stale codebase. Verification effort does not drop — it relocates.
Note also what the release note implies rather than states: someone hit this problem in a real Laravel 10 application, which is mild evidence of at least one consumer attempting a modern install. One data point is not a dependent base, but it is better than the silence the previous assessment described.
Technical risk.
Key questions — updated for 1.1.7.
composer.json now constrain Filament 3.x/4.x, or only 2.x? This is now the single decisive question.The 127-star count still indicates the package is findable rather than good. The 1.1.7 release upgrades the package from "cannot install on our stack" to "can install on our stack, unproven beyond that." Treat both as discovery signals.
Stack fit. Target assumption unchanged: Laravel 10/11, PHP 8.1+, Filament 3.x or 4.x, Livewire 3, Tailwind 3/4, Vite. Release 1.1.7 narrows the gap at one layer — the Laravel 10 composer constraint now resolves, so the package plausibly installs on Laravel 10 — but the Filament 2.x, Livewire 2.x, and Mix-era asset assumptions remain unaddressed and unverified. The gap is now "one framework generation at the Filament/Livewire layer" rather than "one to two generations across the board." Smaller, not closed.
Migration path — three credible options, preference order unchanged.
Compatibility checklist — reordered, because the install gate has moved. Panel boot with the plugin registered on our Filament version is now check one, not check three. Then: Livewire 3 render cycle (the v2→v3 lifecycle and request-handling changes are a common silent break, and a Laravel-10-only fix would not have surfaced them); asset publishing under Vite; Tailwind class purge correctness; and one end-to-end render with a non-trivial event set. Composer constraint resolution moves to a pre-check we expect to pass.
Sequencing.
Maintenance. Still the dominant cost. 1.1.7 is a positive maintenance signal — the package is not abandoned, and the maintainer responds to install-level breakage — but it is not evidence of a compatibility program. Nothing in the release suggests anyone is testing against Filament 3 or 4, and zero dependents means no downstream project is exercising the code against modern dependency sets. If we fork, we now own a slightly healthier starting point; if we substitute, we inherit a maintainer with an actual cadence. Assign a named owner before merging regardless.
Support. Unchanged: MIT, no vendor, no SLA, no security contact, best-effort issue response. Escalation path is "we fix it." Acceptable for internal admin convenience, unacceptable for customer-facing or revenue-adjacent surfaces. The supply-chain point stands — an unmaintained JS calendar dependency is not being audited by anyone, so keep it in dependency scanning rather than exempting it.
Scaling. Unchanged, because the release touches only a composer constraint. The scaling question lives in the query, not the plugin: (a) unbounded date-range queries feeding a month view degrade as event volume grows — enforce server-side range bounds and indexes on start/end; (b) payload size — thousands of events serialized into a Livewire payload stresses the snapshot/hydration path; (c) rendering — dense months with overlapping events become a browser problem before a database one. Window data per visible range and cap events per cell.
Failure modes to design against.
Ramp-up. Unchanged. For a Filament-fluent developer, comprehension is a half-day — one page, one component, one view. Modernization is multi-day, and 1.1.7 shaves maybe half a day off it by removing the dependency-constraint archaeology. The trap remains that comprehension is cheap and modernization is not. Teams without Filament experience should not use this package as a learning vehicle.
Recommendation. Softened, not reversed. 1.1.7 clears the composer gate on Laravel 10, which is a necessary and previously missing precondition — so run the Phase 0 spike on a current Laravel 10 + Filament sandbox, expecting the install to succeed and testing specifically for panel boot and Livewire 3 render. If the spike boots and renders, this becomes a viable short-term option on a strict version pin with a named owner. If it installs but fails to boot — the likelier outcome — default to the maintained FullCalendar alternative and fall back to a bounded in-house page. Reserve the fork path for the case where Timex has a specific capability we cannot get elsewhere; 1.1.7 lowers that fork's cost but does not change the ownership burden it creates.
How can I help you explore Laravel packages today?