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 Json Laravel Package

thyyppa/nova-json

A Laravel Nova JSON field for viewing and editing JSON attributes directly in the admin panel, making nested configuration, metadata, and structured data easier to manage with formatted output and a smoother editing experience.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Confirm your app meets the new baseline: Laravel 10 and Nova 4. v4.0.0 is primarily a compatibility release, so the first step is checking composer.json constraints before upgrading.
  • Install/upgrade with composer require <vendor>/<package>:^4.0. If you are coming from a Nova 3 release, expect to re-publish assets and possibly re-register the tool.
  • Look first at the package’s README, config/ file (if publishable), and src/ service provider. For Nova packages, the key integration point is usually NovaServiceProvider::tools() or a custom Tool/Card/Field registration.
  • First use case: register the package’s Nova tool or component in app/Providers/NovaServiceProvider.php, then load the Nova admin panel and confirm the asset bundle loads under Nova 4’s Vite-based asset pipeline.

Implementation Patterns

  • Tool/Card/Field registration – Most Nova packages expose a class you add to NovaServiceProvider. Use conditional registration if the package is environment-specific:
    public function tools()
    {
        return [
            new \Vendor\Package\YourTool(),
        ];
    }
    
  • Asset publishing – Nova 4 uses Vite. Run php artisan vendor:publish --tag=<package>-assets if the package provides assets, then rebuild Nova assets if required by your setup.
  • Policy and authorization integration – Wire the package’s resources or tools into your existing Nova policies. This is the most common day-to-day lever: restrict visibility per user/role using canSee/canRun callbacks.
  • Dashboard composition – If the package provides cards or metrics, compose them into NovaServiceProvider::cards() or a custom dashboard. Keep dashboards lean by gating cards behind feature flags or roles.
  • Testing – Use Nova’s testing helpers (Nova::actingAs, Nova::assertToolExists) in feature tests. Compatibility releases often change registration internals, so a small smoke test around tool registration is worthwhile.
  • Upgrade workflow – Treat v4.0.0 as a coordinated upgrade: bump Laravel to 10, bump Nova to 4, then bump this package. Run composer update in a branch and verify the Nova panel locally before deploying.

Gotchas and Tips

  • Nova 4 asset pipeline – Nova 4 moved to Vite. If the package still ships Mix-built assets, you may need to rebuild or wait for a patch. Check the package’s dist/ or resources/js output after upgrading.
  • Laravel 10 PHP requirement – Laravel 10 requires PHP 8.1+. Ensure CI and production runtimes match before upgrading.
  • Version constraints – v4.0.0 likely requires laravel/nova:^4.0 and laravel/framework:^10.0. Mixing Nova 3 and this package version will fail at composer resolution, not at runtime, so read the conflict messages carefully.
  • Re-publish config – Compatibility releases sometimes add config keys. Run vendor:publish --force only after diffing the package config against your published copy.
  • Cache clearing – After upgrading, run php artisan optimize:clear and php artisan nova:publish (if applicable). Stale Nova manifests are a common source of “tool not found” errors.
  • Extension points – Look for package events, macros, or Nova::script/Nova::style hooks. These are typically the safest customization points across major versions; avoid overriding package views directly.
  • Debugging registration – If the tool does not appear, check NovaServiceProvider registration first, then composer show <vendor>/<package> to confirm v4.0.0 is actually installed. Nova silently ignores tools whose canSee returns false, so add a temporary return true while debugging.
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.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib