vlados/laravel-legal-documents
Manage legal documents in Laravel with versioned policies, publishable content, and user acceptance tracking. Includes migrations, models, and helpers to keep terms of service and privacy policies current and auditable.
TranslationDriver contract means you can start single-language (no migrations, no adapter, no Spatie) and add translation storage later without a data migration of source content.Consider it when:
Look elsewhere when:
For executives: v2.0.0 is a maturity release for the legal-documents component. It makes multilingual legal content a configuration choice instead of custom engineering, which directly supports expansion into non-English markets without a parallel build. It also strengthens the compliance story: every new document version is copied transactionally, translations included, while prior acceptances are deliberately not carried forward — so acceptance always refers to a version the user actually saw. The cost is a coordinated major upgrade: one dependency must now be declared explicitly, the admin integration requires Filament 4, and published configuration and views need review. There is no data conversion for single-language installations.
For engineering: Treat this as a planned upgrade, not a routine bump. Required actions: declare Spatie explicitly if used, republish and review config, Blade views, and language overrides against the new translation APIs and labels, and confirm the Filament 4 target against your admin build. Adding a language now requires explicit driver and source-language configuration plus the adapter's migrations — installing Spatie alone does nothing, which is the intended safety behavior. Fallback precedence is deliberate (Spatie's global fallback wins; package config applies only when unset or null) — document that so it isn't re-litigated. Validation covers Laravel 11–13, optional-dependency removal, MySQL 8, and PostgreSQL 16/18 with concurrency tests around version copies, locale writes, and serialization retry — the areas this release touches most. Confirm your database and Laravel versions are inside that matrix before scheduling.
How can I help you explore Laravel packages today?