Weave Code
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

Revisionable Laravel Package

sofa/revisionable

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Feature Development: Enables a time-travel debugging feature for admin dashboards, allowing users to compare past states of records (e.g., orders, user profiles, or content) with current versions. This reduces support overhead and improves data integrity.
  • Compliance & Auditability: Supports regulatory compliance (e.g., GDPR, HIPAA) by automatically tracking changes to sensitive data (e.g., user PII, financial records) without manual logging.
  • Roadmap Prioritization: Justifies investing in historical data features (e.g., "undo" actions, version rollback) by providing a lightweight, scalable foundation.
  • Build vs. Buy: Avoids reinventing revision tracking from scratch, reducing dev time and technical debt. Ideal for projects where custom revision logic would be complex or error-prone.
  • Use Cases:
    • Content Management: Track edits to blog posts, marketing pages, or product descriptions.
    • E-Commerce: Audit order modifications (e.g., refunds, cancellations) or customer profile updates.
    • CRM/HR Systems: Log changes to user roles, permissions, or sensitive employee data.
    • Collaborative Tools: Enable team members to revert to previous versions of shared documents or workflows.

When to Consider This Package

  • Adopt if:

    • Your Laravel app requires automated, bulk revision tracking for critical data (e.g., financial, legal, or user-facing records).
    • You need efficient version comparison (e.g., diff tools, audit logs) without heavy custom development.
    • Your team lacks bandwidth to build a custom revision system but needs scalable, auditable history.
    • You’re using Laravel 5+ and want a solution that integrates seamlessly with Eloquent models.
    • Compliance or user trust demands transparent change tracking (e.g., "Who changed this and when?").
  • Look elsewhere if:

    • You need fine-grained control over revision triggers (e.g., only track specific fields/methods) and this package’s bulk approach is too rigid.
    • Your app requires offline or non-SQL storage for revisions (e.g., file-based or NoSQL).
    • You’re using PHP < 5.4 or a non-Laravel framework (though the core logic could be adapted).
    • You need advanced features like binary diffing, soft deletes, or multi-database support (this package is lightweight and opinionated).
    • Your revision volume is extremely high (e.g., millions of records/day), and you need custom optimization.

How to Pitch It (Stakeholders)

For Executives:

"This package lets us automatically track and compare every change to critical data—like orders, user profiles, or content—without extra dev work. It’s like Git for our database: we can audit changes, roll back mistakes, and meet compliance needs with minimal overhead. For example, if a customer disputes a charge, we can instantly see who modified their order and when, reducing support costs. It’s a low-risk, high-reward way to add trust and transparency to our product."

Key Benefits:

  • Reduces risk: Catches errors or fraud early (e.g., unauthorized data changes).
  • Saves time: Eliminates manual logging or custom revision systems.
  • Boosts trust: Proves transparency to users and regulators.
  • Scalable: Handles growth without performance hits.

For Engineering:

*"This is a batteries-included solution for Eloquent model revisions in Laravel. It:

  • Automates revision tracking for all updated/created fields in bulk (no per-field setup).
  • Supports bulk comparisons (e.g., Model::compare(1, 2) to see changes between versions).
  • Integrates with Laravel’s ecosystem (works with Eloquent, guards like JWT/Sentry).
  • Minimal setup: Just publish the config and add a trait to your models.

Trade-offs:

  • Not customizable for edge cases (e.g., ignoring specific fields).
  • Uses a single-table approach (not ideal for massive scale).
  • Best for CRUD-heavy apps where you want to avoid reinventing the wheel.

Recommendation: Use this for core data models where revision history is critical. For niche cases, we can extend it or pair it with a custom solution."*

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.
directorytree/privacy-filter-classifier
directorytree/privacy-filter
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi
splash/scopes
splash/toolkit
testo/output-teamcity
testo/bridge-symfony
spatie/flare-daemon-runtime