eom-plus/nova-signature
A Laravel Nova field for capturing and storing handwritten signatures. Adds a signature pad to Nova forms, saves signature images or data with your models, and displays signatures in resource views for simple e-signature capture in admin panels.
Architecture fit. eom-plus/nova-signature is a Laravel Nova field package, not a general-purpose signing library. It plugs into Nova's field registration lifecycle (a PHP Field class paired with a compiled Vue component) and almost certainly wraps a canvas-based signature-pad widget, persisting a base64 data URL or an image path against an Eloquent attribute. That makes it a good fit only if your admin/back-office UI is already Nova; it has no value in a standalone Blade, Livewire, Inertia, or API-only application. The package is a presentation-layer convenience — it captures a signature image; it does not implement document binding, hashing, timestamping, certificate-based signing, or any e-signature legal framework.
Integration feasibility. Mechanically straightforward for a Nova team: composer require eom-plus/nova-signature, add the column via migration (longText for base64, or a string path if the field supports disk storage), and register the field on the target Resource. The real friction is environmental: Nova is a paid, closed-source product with breaking field-API changes across major versions, and the package's composer.json constraints must be checked against your Nova, Laravel, and PHP versions before you commit. With zero dependents and three stars, there is no community evidence that it works on current Nova releases.
Technical risk. High relative to the value delivered. Concentrated single-maintainer risk, one release (Jan 2024), no dependent packages, no visible test suite or CI, and an unaudited surface area that handles legally sensitive data. Storing signatures as base64 in the database inflates row size and can quietly degrade query performance, backups, and replication. There is no indication of tamper-evidence: a rendered image in a text column proves nothing about who signed, what they signed, or when — so it should not be represented as a compliant e-signature without a separate controls layer. Accessibility (keyboard/mouse/touch capture) and mobile canvas scaling are common weak points in signature-pad fields and need explicit verification.
Key questions.
Stack fit. Suitable only for Laravel applications running Laravel Nova with an existing back-office workflow (consent forms, waivers, delivery confirmations, internal sign-off, field-service acknowledgements). Not suitable as the signing layer for customer-facing contracts, regulated e-signature workflows, or any system requiring non-repudiation.
Migration path. Treat it as an additive field, never a replacement for an existing signature or document store. Add a nullable column, backfill nothing, and keep the signature attribute separate from the authoritative record so you can swap implementations later without a data migration. If the field supports disk storage, prefer a filesystem/S3 path over base64 to keep the primary table lean.
Compatibility. Verify the version matrix explicitly: composer.json constraints against Nova 4/5, Laravel 10/11/12, and PHP 8.1+. Confirm the compiled JS assets actually publish and render in a staging Nova instance — Nova field packages frequently break on asset compilation or Vite/Mix changes even when Composer resolves cleanly. Pin the version in composer.json and do not float it.
Sequencing.
Maintenance. The dominant cost. A three-star, single-release package with one maintainer is a fork candidate from day one. Budget for vendoring or forking, and assume you own the code the moment Nova ships a breaking change. Track the upstream repo for issue response; absent activity, plan a planned replacement rather than an emergency one.
Support. No SLA, no vendor, no dependents to corroborate behaviour. Internal Nova developers can read and patch the field quickly, which caps the support risk — but only if you have that skillset in-house. Without it, this is an orphan dependency.
Scaling. Signature images stored as base64 in a text column add roughly 10–100 KB per row depending on canvas size and compression; at volume this affects table bloat, backup size, replication lag, and any query that selects *. Prefer file storage with a path reference, and cap canvas dimensions client-side. Rendering cost is trivial; storage and transport are the real constraints.
Failure modes.
Ramp-up. Low technical ramp-up: any developer familiar with Nova fields can integrate and modify it in hours. The real ramp-up is organizational — compliance, legal, and security stakeholders need to sign off on what a canvas signature means in your jurisdiction (ESIGN/eIDAS simple vs. advanced/qualified), what retention policy applies, and whether the artifact is admissible. Factor that review into the timeline; it will exceed the engineering effort.
How can I help you explore Laravel packages today?