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

creode/nova-publishable

A Laravel Nova field package for managing publishable content, letting editors toggle draft and published states directly from Nova resources with minimal setup.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Install with Composer, targeting ^1.2 when running Laravel 11: composer require creode-modules/nova-publishable:^1.2.
  • Confirm version constraints in composer.json for Laravel, Nova, and PHP; 1.2.0’s headline change is Laravel 11 compatibility.
  • Follow the package README for exact setup names, but expect the integration points to be: publish config/migrations if provided, add the package trait/contract to the publishable Eloquent model, and add the Nova field/action to the relevant Nova resource.
  • Run migrations and clear Nova/Laravel caches after installation.
  • First use case: add publish/unpublish controls and scheduled publication fields to a Nova resource so editors can move content from draft to published without developer involvement. Verify the field appears correctly in Nova and that the model’s published state changes as expected.

Implementation Patterns

  • Keep publish state on the model via the package trait and expose controls through Nova. Use model scopes in application queries so front-end code consistently respects published/draft state.
  • For editorial workflows, treat Nova as the admin surface and the model trait as the source of truth: draft → scheduled → published/unpublished. Use Nova actions for bulk publish/unpublish where appropriate.
  • Wire publication changes into application side effects with model events/observers: clear response cache, invalidate CDN paths, update sitemaps, or dispatch search-index updates after publish/unpublish.
  • Enforce authorization with Laravel policies and Nova policy methods. Publishing is usually a privileged action, so gate the Nova field/action rather than relying only on UI visibility.
  • Use the package in factories and tests by setting published state explicitly, and use time travel when testing scheduled publication behavior.
  • If the package exposes config for column names, date formats, or scheduling behavior, publish and commit that config so environments behave consistently.

Gotchas and Tips

  • 1.2.0 is primarily a Laravel 11 compatibility release. No breaking changes are listed, but verify Nova and PHP constraints before upgrading an existing app.
  • Check composer why-not creode-modules/nova-publishable 1.2.0 if the upgrade is blocked; Nova version constraints are the most likely culprit in Laravel 11 projects.
  • Be deliberate about published_at semantics: null vs. future date vs. past date. Backfill existing rows during migration and make list/detail queries use the same definition of “published.”
  • Store publication timestamps in UTC and let Nova display them in the user’s timezone. Scheduling bugs often come from timezone assumptions.
  • Do not rely on Nova alone for cache/index invalidation. Publishing from the admin panel should trigger the same application events as any other publish path.
  • If actions can bypass model events, confirm whether the package dispatches events or whether you need to hook into Nova action completion.
  • When debugging, check Nova resource registration, policy authorization, published config, and cache clearing first. After upgrading to 1.2.0, run the test suite against Laravel 11 and smoke-test publish, unpublish, and scheduled publication in Nova.
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.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core