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 Worldclock Card Laravel Package

interaction-design-foundation/nova-worldclock-card

A Laravel Nova card that displays world clocks for multiple time zones, helping you keep an eye on local times across offices and teams directly from your dashboard.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. nova-worldclock-card is a Laravel Nova dashboard card: a Vue component compiled with laravel-mix/webpack and distributed as a Composer dependency. It is architecturally peripheral by construction — it renders inside the existing Nova admin surface and touches no application domain code, no database, no queue, no auth path, and makes no outbound network calls. For a TPM the correct framing is that adoption is a UI-surface decision, not an architecture decision, and should be reviewed at that altitude. The one architecturally meaningful item in 3.4.0 is the runtime floor moving to PHP 8.4 (breaking, up from 8.3), which converts what reads like a routine package bump into a platform-gating dependency whose critical path is owned by another team. The 8-star / 0-dependent profile is a weak external signal for viability; it is partly offset by the maintainer being an established organisation (Interaction Design Foundation) rather than an individual. That provenance is acceptable for cosmetic admin chrome and would not be acceptable for anything on a critical path.

Integration feasibility. Feasible in isolation within hours: composer require, register the card in the Nova service provider, publish the config, enumerate cities and time zones. Every real constraint sits outside the team doing the work — the host runtime must be PHP ≥ 8.4, the installed Laravel major must be one our Nova release supports, and our Nova release must be one this card supports. The changelog's "Laravel 13 support groundwork" is forward-looking language, not a support statement; it must not enter a compatibility matrix. A second feasibility branch deserves early resolution: if the published artifact ships pre-compiled assets, the webpack/laravel-mix churn is not ours to carry; if consumers compile from source, we inherit a dependency on a build toolchain in maintenance mode.

Technical risk. Low blast radius, three non-zero risks, one triaged non-risk:

  • Runtime floor (breaking, gating). PHP 8.4 minimum, up from 8.3. On 8.3, dependency resolution fails outright — a loud, correctly-attributed failure, but it means our delivery path runs through a platform upgrade, not through this package.
  • Build toolchain drift. 3.4.0 fixes genuine breakage: laravel-mix 6.0.49 floats webpack: ^5.60.0, and webpack 5.107.0 removed lib/SizeFormatHelpers while 5.102+ tightened ProgressPlugin option validation. Pinning webpack is correct remediation and strictly improves our position — but it confirms the asset pipeline is a slowly decaying moving part that breaks without upstream warning.
  • Silent visual regression. A Nova upgrade can change card mounting or asset loading and yield a blank or unstyled card with no error and no test coverage. This is the failure mode most likely to reach users, and only manual QA catches it.
  • CVE-2025-68157 — triaged, no workstream. The HttpUriPlugin allowedUris bypass via redirects requires experiments.buildHttp, which this package does not enable. Build-time only, unreachable here. Log the triage decision and do not open remediation.

Key questions.

  1. Which Nova majors does 3.4.0 actually declare support for, and what Nova version is pinned in composer.lock?
  2. Does the published artifact ship pre-built assets, or do consumers compile? This decides whether the webpack pin is our problem at all.
  3. What is fleet PHP 8.4 readiness, who owns it, and would this card force 8.4 ahead of the platform's own schedule?
  4. Is the card rendered on any dashboard today? If not, removal is cheaper and lower-risk than upgrading.
  5. Who curates the configured time zone list once deployed — and does that content responsibility have a named owner?

Integration Approach

Stack fit. Clean if and only if three layers align: PHP ≥ 8.4, a Laravel major supported by our Nova release, and a Nova major supported by this card. Any mismatch blocks, and the mismatch is resolved outside this repository. The package adds no services, storage, credentials, or background work, so it does not change runtime topology or the deployment model — which keeps the change-review surface small and keeps TPM attention on the prerequisite chain rather than the code.

Migration path. Treat 3.4.0 as baseline adoption (no prior assessment exists). Three paths, in preference order:

  • Greenfield: raise the environment to PHP 8.4 first, then add ^3.4, register, configure, verify.
  • Upgrade from 3.3.x: PHP is the only breaking change. Sequence the runtime upgrade and the package bump as separate change sets so any resolution failure is attributable to PHP, not to the card.
  • Removal: if the card is unused, composer remove is a legitimate and often preferable outcome. It deletes the PHP constraint entirely at zero feature cost — a rare case where the cheapest option is also the cleanest.

Compatibility. Verify against the Nova version in composer.lock, never against changelog aspiration. Build- and CI-side changes (@vue/compiler-sfc 3.5.40, actions/checkout v7, actions/setup-node v7, actions/cache v6, composer cs chaining PHP-CS-Fixer ahead of phpcbf) affect the consumed artifact only if we build from source; otherwise they are noise in review and should be explicitly excluded so reviewers do not spend time on them.

Sequencing. Milestones, owners, and gates:

  1. Usage audit — team lead, ~1 hour. Decision gate: adopt or remove. Do this before any engineering work is scheduled.
  2. Nova support-matrix confirmation — Nova admin owner. Nothing is scheduled until this returns.
  3. PHP 8.4 platform upgrade — platform/infra. Longest lead time and the genuine gating item; validate the whole dependency graph on 8.4, not just this package.
  4. Package bump in staging — app team. Register the card, set the time zone list, confirm whether assets are pre-built or compiled.
  5. Manual dashboard QA — Nova admin owner. Clock rendering, time zone correctness across DST boundaries, light/dark theme. Required sign-off; automation will not catch this.
  6. Production rollout — app team, low-risk release window; no migration, no backfill, no data change. Rollback is composer remove.
  7. Deprecation checkpoint — revisit at the next platform window; if still unrendered, remove.

Operational Impact

Maintenance. Near-zero steady state: no database, no scheduled work, no storage, no secrets, no external calls. The real maintenance surface is upgrade hygiene — this maintainer ships breaking runtime-floor bumps per minor line (8.3 → 8.4), so budget a small review each cycle rather than assuming silent patch-level churn. Pin the constraint deliberately and upgrade on our cadence, not on composer update.

Support. No commercial support tier and a single-maintainer organisation. The internal Nova admin owner is the de facto support path. Because the failure mode is cosmetic, escalation is trivial: the card can be disabled or removed without touching application behaviour. Document that explicitly so on-call does not treat a blank card as an incident.

Scaling. Not a scaling concern. There is no server-side work beyond Nova's normal dashboard render, and a handful of client-side timers per open browser tab. The only tunable is the number of configured time zones, which is a readability decision, not a capacity one.

Failure modes.

Failure Signal Impact Mitigation
Blank/unstyled card after Nova upgrade Silent — no error, no test Cosmetic, but erodes trust in the dashboard Manual QA on every Nova upgrade; card is non-critical, so no rollback urgency
Composer resolution failure on PHP < 8.4 Loud, at install time Blocks deploy of the host app Correctly attributed; sequence as separate change set
Upstream asset build breakage (webpack/laravel-mix) Only if compiling from source Build pipeline friction, no runtime impact Prefer consuming published assets; otherwise pin webpack
DST / time zone display inconsistency Users report wrong-looking times Display-only; no logic depends on it Confirm the card is never used as an input to scheduling or notification logic
Orphaned dependency Audit finds card rendered nowhere Pure drag on every platform upgrade (the 8.4 floor) with zero value Usage audit is the decision gate; remove rather than upgrade

Ramp-up. Negligible for engineers — a composer require plus a handful of config lines. TPM-specific ramp-up is the documentation cost: record the decision, the confirmed Nova/Laravel/PHP matrix, and the named owner of the time zone list. That last item outlives the code, because the list of cities reflects who is on call and where the team is distributed, and it will drift silently if nobody owns it. Also set expectations explicitly with stakeholders that this is a display widget, not a scheduling capability — timezone conversion, availability search, and timezone-aware notifications belong in application code via Carbon, and the presence of a clock on the dashboard must not be mistaken for a roadmap commitment to any of that.

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.
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
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource