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

Eloquent Draftable Laravel Package

optix/eloquent-draftable

A Laravel package that adds draft and published states to Eloquent models, letting you save work-in-progress records and publish them later. Drafts stay separate from live content, so unfinished entries remain hidden from your application's normal queries until you're ready.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Editorial/content workflows: Enables "draft → review → publish" states on any Eloquent model (articles, product pages, policy documents, pricing sheets), letting editors iterate on a live-visible copy while a draft version exists behind the scenes. This is the core feature decision it informs — whether to support staged content changes rather than immediate overwrites.
  • Versioned content vs. hard edits: Helps decide between a simple UPDATE model and a versioned model where the last published state persists until an explicit publish action. Relevant for any product with an audit/compliance or "don't break the live page" requirement.
  • Build vs. buy (still lean build): With ~27 stars, effectively zero dependents, and only sporadic maintenance, the correct PM framing remains: validate the pattern, then implement in-house. The v2.1.0 release (Laravel 8 support, PHP 7.2 dropped) is a mild signal the package isn't abandoned — but it is still a reference implementation, not a dependency we should bet on.
  • Roadmap signal: A "scheduled publishing" or "content approval" roadmap item is what makes draftable behavior necessary. If that's on the roadmap, this package is a low-cost spike to understand the data-model implications (keeping a published_at/state column, query scoping to hide drafts, preview routes).
  • Scoping use cases: CMS pages, product catalog edits, legal/terms updates, email-template changes — anywhere "preview before publish" matters to users or risk.

When to Consider This Package

  • Consider (as a reference, not a dependency) when you're spiking an editorial/publishing state machine in a Laravel app and want to see a minimal implementation pattern of draftable Eloquent models before writing your own.
  • Consider when your team is Laravel-native, you're on an older framework version (Laravel 8 or the 7.x line this package targets), you want a quick proof-of-concept for draft/publish scoping, and you accept that you'll likely fork or reimplement it.
  • The v2.1.0 release changed the maintenance picture slightly: it adds Laravel 8 support and drops PHP 7.2, which tells us someone is still tending the repo at least occasionally and that it will install cleanly on Laravel 8 / PHP 7.3+. It does not demonstrate support for Laravel 9, 10, 11, or 12 — so if your stack is newer than Laravel 8, treat this as out-of-support and expect to patch it yourself.
  • Look elsewhere / avoid for production if any of the following hold — and most still do:
    • Your app runs Laravel 9 or later (well past what 2.1.0 targets); compatibility work will be on you.
    • You need a predictable release cadence, security patching tied to your framework's support window, or a bus factor > 1. One release does not make a maintained dependency.
    • You require battle-tested behavior across edge cases (relationships on drafts, soft deletes, bulk publish, queue integration).
  • Alternatives to weigh: build a small internal trait/state column; or evaluate more actively maintained Laravel CMS/content packages (e.g., Statamic, or Laravel Nova-style publishing fields) if the scope is broader than one package.

How to Pitch It (Stakeholders)

To executives: A small open-source add-on for our Laravel stack that lets content models hold a "draft" copy alongside the published version — the capability behind "edit without changing the live page." The idea is valuable and maps directly to our content/publishing roadmap. The package got a fresh release (v2.1.0, adding Laravel 8 support and dropping old PHP 7.2), so it isn't dead — but it's still low-maturity (limited adoption, no modern-framework support beyond Laravel 8, no meaningful dependent ecosystem). Recommendation holds: treat it as a design reference and build the behavior in-house with a few days' engineering rather than adopting a dependency that trails the framework. Net: low effort, low risk, high alignment with the content-workflow roadmap; no licensing cost (MIT).

To engineering: The package demonstrates a draftable-model pattern — a state/published_at column plus query scoping and preview resolution. v2.1.0 confirms it targets Laravel 8 (and drops PHP 7.2), so it's installable on an L8 baseline but nothing newer; if you're on L9+, expect to adapt it. It remains effectively a one-person, low-activity project. Recommendation: borrow the pattern, implement a lightweight internal trait we own, add tests for relationship and preview edge cases, and keep the dependency surface clean.

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.
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
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle