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

Laravel Filament Publishable Laravel Package

novius/laravel-filament-publishable

Manage Laravel Publishable models in Filament 4: add publication status fields, columns, filters, and bulk actions to your resources for Laravel 11+ and PHP 8.2+.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Scheduling content lifecycle features: Any roadmap item involving draft → scheduled → published → expired states (blog posts, announcements, landing pages, product visibility, help-center articles) has an admin-UI portion that this package largely collapses into a Composer install. It surfaces an existing state machine in Filament; it does not define the lifecycle — so it informs effort and scope, not strategy.
  • Build vs. buy for the admin surface: The build option is four form fields, a table column, a status filter, a bulk action, plus translations, validation, and authorization glue. The buy option is composer require. The hinge is not this package — it's whether the team has already committed to novius/laravel-publishable as the model-level trait. If yes, buying is straightforward. If no, evaluate the pair, not the package alone: adopting this means adopting that too.
  • Roadmap sequencing and resourcing: Adoption is incremental — form fields first, then column and filter, then bulk actions, one resource at a time. That makes it a contained sprint item with a stop/go gate, not a migration or replatforming bet. It's suited to a current-cycle slot, not a quarterly commitment.
  • Standardization decision: Choosing it sets a convention — publication semantics live in one trait plus one set of Filament components across every content resource. That reduces per-resource drift and design churn, but locks in a pattern the team must follow and a version coupling they must maintain through Filament/Laravel upgrades.
  • Buy-vs-extend boundary: Conventional publishing UX is covered (status fields, published/expired dates, status column, status filter, bulk publish/unpublish, translations). Anything richer — approval chains, editorial roles, role-gated publishing, publish-triggered notifications/webhooks/cache invalidation, audit trails, per-record feedback on bulk partial failures — is extension work. Budget it explicitly in the estimate rather than assuming coverage.
  • Risk and compliance triage: AGPL v3 is a gating product decision, not an engineering detail. For a proprietary or distributed SaaS product it can be a hard blocker; for internal-only tooling it may be acceptable. That single question can kill or unlock the initiative before any sprint time is spent — resolve it first.
  • Maturity/risk triage for a low-signal dependency: 4 stars, 0 dependents, single maintainer, no commercial support. This is not a reason to reject, but it is a reason to treat adoption as a pilot-with-exit-plan rather than a platform commitment, and to price the exit (roughly ~100 lines of custom Filament components against the same trait) into the decision.

When to Consider This Package

Adopt when all of these hold:

  • Target models already use — or the team has decided to adopt — novius/laravel-publishable, with publication_status / published_at / expired_at columns in place.
  • The admin panel is Filament 4+ on Laravel 11+ / PHP 8.2+.
  • The desired publishing UX is conventional: status, publish date, expiry date, status column, status filter, bulk publish/unpublish.
  • Publishing controls are table stakes for your admin rather than a differentiator, so pre-built components beat hand-rolled ones.
  • Legal has cleared AGPL v3 for your distribution model, or the product is internal/open-source.

Look elsewhere — or build in-house — when:

  • The product needs editorial workflow beyond state toggles: approval chains, multi-step review, role-gated publishing, audit trails. You are writing that logic regardless, and the package buys you only the basic status UI.
  • The stack is below the hard floors (Filament < 4, Laravel < 11, PHP < 8.2) and upgrading is not on the roadmap.
  • AGPL v3 is incompatible with your distribution model and cannot be signed off.
  • The team is not prepared to pin the dependency and treat Filament majors as coordinated upgrades that include a compatibility check.
  • You need vendor support, SLAs, or a maintainer relationship — none of that exists here.

Treat as a pilot, not a platform commitment: validate on one low-risk resource and keep a thin local wrapper (App\Filament\Components\Publish\* extending the package components) so replacement is a one-directory swap rather than a search-and-replace across every resource. The wrapper costs roughly 30 lines and buys replacement optionality — that is the cheapest risk mitigation in the whole plan.

How to Pitch It (Stakeholders)

To executives — one paragraph: For any content in our admin panel that needs a draft/published/expired lifecycle, this package lets us ship the publishing UI — status fields, a status column, a filter, and bulk publish/unpublish — by installing a library instead of building it. It is a bounded, revertible change: pilot on one resource, measure, then decide on wider rollout. The two things we need from leadership before code starts are (1) legal sign-off on the AGPL v3 license, which can be a hard blocker for proprietary or distributed products, and (2) acceptance that this is a small, single-maintainer dependency we will wrap and pin rather than standardize on blindly. The exit cost is low — roughly an afternoon of custom Filament work per the same integration points — provided we do the wrapper.

To engineering — framing and the ask: This is a UI adapter, not a library. It binds Filament components to the novius/laravel-publishable trait; the state machine, scopes, and timezone semantics live in the parent. Before committing, we need a short spike on one resource to (a) verify the component class names and the column arguments — the README ships two real bugs, a wrong column on PublishedFirstAt and a stale Nova-era provider class name, so src/ is the source of truth; (b) confirm the bulk action's behavior under load — per-record saves vs. single update, event dispatch, transaction wrapping, partial-failure feedback; (c) establish a policy convention for role-gated publishing, since the package ships none. We then roll out form fields → column → filter → bulk action per resource, behind a thin local wrapper so a swap is contained if the maintainer disappears or licensing fails.

The decision in one line: low cost to adopt, low cost to reverse, real value if we already need publishing state in Filament — but gated on AGPL clearance and treated as a wrapped pilot, not a platform bet.

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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel