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

Nova Improved Date Field Laravel Package

gabelbart/nova-improved-date-field

An improved date field for Laravel Nova that gives you more control over how dates and times are displayed and edited in your admin panel, with flexible formatting options and a cleaner, more intuitive picker experience for your resources.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. The package is a Laravel Nova field — a PHP Field subclass plus a compiled Vue component registered through Nova::script(). That places it entirely in the admin presentation layer: it does not touchEloquent models, migrations, routing, or the public application. Architectural coupling is therefore shallow and one-directional (Nova → field), which is the most favorable kind of third-party dependency to take on. The caveat is that Nova itself is closed-source and commercially licensed, so the package is coupled to a proprietary, versioned API surface that we cannot inspect, patch, or test against without a paid license per environment.

Integration feasibility. Mechanically trivial: composer require, a use statement, and a swap from Date::make('field') to the improved field in one or more Nova resources. No schema change, no data migration, no backfill — the underlying column and cast stay exactly as they are. Reversibility is a single commit. The real feasibility question is not "can we install it" but "does the shipped build target our Nova major." Nova 4/5 moved to Vue 3 and Vite with a laravel-nova npm mix dependency; a field compiled against Nova 3's Vue 2 / Laravel Mix toolchain will fail at render time, typically as a blank field or an unformatted string rather than a clear error.

Technical risk. Ranked:

  1. Abandonment. Zero stars, zero dependents, single maintainer, GitLab-hosted. Effective bus factor of one. Assume from day one that we own this code.
  2. Identity ambiguity. The package vendor (gabelbart) does not match the repository namespace (jacobfricke). This looks like a fork or mirror of unclear provenance. Supply-chain provenance should be confirmed before this enters composer.json.
  3. Compiled asset availability. Vendor JS is not built by the host application. If dist/ is not committed and exported in the tag, installation produces a field that cannot render, and every deploy requires an npm build step we do not control.
  4. Nova upgrade fragility. Nova majors have historically broken field JS APIs. With no test suite and no public CI (Nova cannot be installed in public CI without a license key), we cannot validate an upgrade ahead of time — we find out in staging.
  5. Timezone / boundary correctness. This is the highest-impact functional risk. Configurable date fields invite min/max, disabled-date, and format options that interact with Carbon, the app timezone, the user's browser timezone, and UTC column storage. Off-by-one-day errors at month and DST boundaries are the classic failure and are silent — the value writes cleanly, it is just wrong.
  6. Security surface. Low. Admin-only rendering, and it emits a form input rather than arbitrary HTML. Residual XSS risk exists only if the field renders unescaped config strings into the DOM.

Key questions.

  • Is there a LICENSE file, and what does it permit for commercial internal use and for internal forking?
  • Which Nova versions and PHP versions are declared in composer.json, and is dist/js/field.js committed on the released tag?
  • What is the commit cadence over the last 12–18 months, and does the GitLab repo have any open issues or releases?
  • Is jacobfricke the canonical author, and does gabelbart on Packagist point back to it?
  • What timezone strategy does the field use — does it serialize to UTC like Nova's native Date, or pass local strings?
  • Is there any test coverage, and can it run against a licensed Nova install in our own CI?
  • What specifically does "configurable" buy us over Nova's built-in Date / DateTime fields, which are maintained by the Nova team?

Integration Approach

Stack fit. Compatible on paper with any Laravel + Nova application on a matching major. Verify four pins before anything else: PHP constraint, Laravel constraint, Nova constraint, and the frontend toolchain the shipped bundle was built with. If the package does not explicitly declare Nova 4/5 support, treat it as Nova 3-only regardless of what the README implies.

Migration path. Presentation-layer swap only:

  1. Mirror the repository into our internal GitLab and tag a vetted commit — do not depend on the upstream URL resolving in two years.
  2. Install from the VCS mirror with an explicit commit hash pinned in composer.json, not a floating constraint.
  3. Replace the field reference in exactly one Nova resource.
  4. Validate read, write, filter, sort, and index-table rendering for that resource against seeded data.
  5. Expand resource by resource.

Rollback is a composer revert plus one-line revert per resource. No data remediation is required, which is what makes the pilot genuinely low-risk.

Compatibility. Confirm Nova major and Vue major parity first; everything else is downstream of that. If there is a mismatch, the only paths are (a) fork and rebuild the JS against our Nova version — roughly 1–2 days for a competent Laravel/Vue developer — or (b) drop the dependency and configure Nova's native date field.

Sequencing.

  1. Legal/license and provenance check.
  2. Vendor the source into internal GitLab; pin the commit.
  3. Build a throwaway Nova app or local branch to verify render, persist, and timezone behavior.
  4. Pilot in one non-critical resource behind a feature flag.
  5. Decide adopt vs. build in-house before the second resource adopts it.

The decisive comparison: a Nova field is two files and a small Vue component. If the feature set we actually need is more than light formatting and min/max constraints, the build path is 2–4 days of work and eliminates every risk enumerated above.

Operational Impact

Maintenance. Treat as vendored code, not as a dependency. Budget a named owner and a recurring review tied to Nova upgrades, not a calendar cadence. Expected steady-state cost is near zero until a Nova major lands, at which point it is a half-day to a day of rework — or a hard block if the JS bundle must be rebuilt and the original author is gone.

Support. No SLA, no vendor, no issue-triage path of consequence. Escalation is "read the PHP and Vue source," which is feasible because the surface is small. Document the field's behavior in our own repo so the next engineer does not have to reconstruct intent from a GitLab mirror.

Scaling. Negligible runtime cost — it is an admin-only input component, executed per form render, not on the request hot path. The scaling concern is organizational, not infrastructural: N resources each configuring date behavior slightly differently produces inconsistent UX and inconsistent validation. Standardize through a single internal base field class that wraps or replaces this package so configuration lives in one place.

Failure modes.

  • Silent wrong dates. Timezone or boundary mishandling writes a valid but incorrect value. Highest severity because it corrupts data and surfaces late. Mitigate with an automated test asserting round-trip correctness across DST transitions and month boundaries.
  • Blank field after upgrade. Nova or Vue major bump breaks the compiled bundle. Loud, caught in staging, cheap to fix.
  • Missing asset on deploy. dist/ absent from the tag or excluded by .gitattributes, producing a field that never renders in a fresh environment while working locally.
  • Unpinned resolution. A retagged or force-pushed upstream silently changes behavior. Mitigated entirely by the internal mirror plus commit pinning.
  • Abandonment on our upgrade timeline. Nova ships a breaking change, upstream does not respond, and we are blocked on our own fork.

Ramp-up. Low. A Laravel developer familiar with Nova is productive in a few hours; budget half a day to internalize the field's meta/config flow and the frontend date library's option surface. The expensive knowledge is not the package — it is the timezone contract between browser, Carbon, and the database column, and that knowledge should be written down rather than discovered.

Recommendation. Do not adopt as a production dependency on current evidence (zero stars, zero dependents, single maintainer, mismatched vendor/repo identity, no test or CI story). If the configurability it offers is genuinely needed, fork it into internal GitLab, pin it, and own it — or spend the 2–4 days to build a first-party field and avoid the provenance and upgrade questions entirely. Nova's native date fields cover the common case; start there.

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