orlyapps/nova-multiline-text
A Laravel Nova field for multiline text input, letting you edit longer content with configurable rows and display line breaks cleanly in index and detail views. A simple drop-in alternative to Nova's standard Text field.
Textarea::make() — or a ~30-line in-house field — already covers most of the need. Frame it as a line item in the admin-tooling budget, not the platform-dependency budget.Textarea::make()?” is itself the deliverable. It stops the same multiline-field conversation from being relitigated each quarter and gives the next PM an audit trail.composer update.Consider it when:
TEXT/VARCHAR, so rollout and rollback are a one-line resource edit plus composer remove, with no migration and no data-format commitment.composer.lock, validate declared Nova/PHP/Laravel constraints from composer.json (not the README), read the Vue component for v-html on stored content, and confirm compiled assets actually ship.Look elsewhere when:
Textarea::make()?” is “it’s a textarea,” reject it and move on.dependsOn chains and silent truncation into a short VARCHAR are operator-facing failures, not just bugs.To executives: This is a free, MIT-licensed add-on for our Laravel Nova admin panel that renders a multiline text input and preserves line breaks for internal notes, addresses, and descriptions. No license cost, no external service, no data leaving our infrastructure, and no background work — the runtime footprint is a small form input. The trade-off is provenance: one maintainer, minimal adoption (7 stars, no dependent projects), and no community safety net when Nova majors upgrade. My recommendation is not to adopt it as a dependency unless a short spike proves meaningful time savings; Nova’s built-in fields, or a half-day in-house field, cover the same need. Treat it as a reference implementation, not a platform commitment.
To engineering: Thin Nova field — a PHP Field subclass, a service provider registering compiled JS/CSS, and a Vue component built against laravel-nova. Small readable source, no new runtime services, no meaningful security surface. Integration is composer require plus swapping Textarea::make() in a resource class; rollback is one line plus composer remove. Before adopting, close five points: declared Nova/PHP/Laravel constraints read from composer.json; whether compiled assets ship in dist/ or require Nova’s private npm registry to rebuild; whether the Vue component escapes stored content (no v-html); whether nullable, rules, default, fillUsing, and dependsOn behave as expected; and whether an explicit max: rule matches the column to prevent silent truncation. Assume abandonment as the base case: pin the version, document the “why this and not Textarea::make()?” decision next to the field usage, and name an owner so it can’t rot silently into the next Nova upgrade.
Decision summary: Low cost, low risk, low strategic value. Default to Nova built-ins or a small in-house field; adopt only for a specific, verified UI gap where the time saved clearly exceeds the vendor and upgrade risk.
How can I help you explore Laravel packages today?