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

Nova Inline Text Field Laravel Package

optimistdigital/nova-inline-text-field

A Laravel Nova field that lets you edit text values directly in the resource index table. Click a cell, type, and save without opening the detail page, making admin updates faster and keeping data entry inline, simple, and frictionless.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy on commodity admin UX. "Let an ops person fix a typo in a display name without opening the record" is table stakes, not a differentiator. This package is the buy side of that call: MIT-licensed, one composer require, one line in a resource's fields(), no config file, no migration, no service to operate, no queue, no cron. Engineering hours stay reserved for admin workflows specific to our business. The decision it forces is useful precisely because it's small: if the answer is "not worth a day of integration," that's a signal about the workflow, not the package.
  • Where to spend the admin-UX budget. Inline editing pays back in proportion to edit frequency and inversely to blast radius. This informs which resources get it first: high-volume, short-value, low-blast-radius fields — display names, titles, labels, sort keys, status lines. Anything feeding derived state (slug generation, cached aggregates, denormalized columns, search indexes, billing/entitlement fields) is explicitly out of the first tranche. Fund the pilot with a before/after measure — median time-to-complete-edit, clicks per edit, number of full form loads avoided — so the second tranche is justified by evidence rather than by the fact that the package is cheap.
  • Roadmap scoping, in both directions. An "ops spends too much time on routine record maintenance" line item can be partially retired at near-zero cost. The inverse matters just as much: if a roadmap item implies rich text, long-form content, validation-heavy workflows, or multi-field inline editing, this package does not satisfy it, and that item should stay in the backlog with its scope made explicit rather than quietly assumed to be covered by "we have inline editing now."
  • Dependency classification as a decision in itself. 23 stars, 0 dependents, a small maintainer team, GitHub issues as the only support channel. That is a convenience dependency, not infrastructure. The PM output is the tier assignment: how much of the admin surface we let it touch (one or two resources, not twenty), who owns the wrapper, and what event triggers fork-or-replace. The small surface area is what makes both adoption and forking cheap — protect that by not letting usage sprawl before the first resource proves out.
  • Version-pinning and release-gating policy. The most recent release (2025-03-25) is a 3.0.1 hotfix for an InlineText method incompatibility with its parent Nova class. In PHP that class of defect is a fatal "declaration must be compatible" error at class load — it takes down the entire Nova panel, not one field. That is direct input to three policy decisions: pin ^3.0.1 and never 3.0.0, gate Nova upgrades behind a staging pass with a boot smoke test, and add a dependency-review checklist item so nobody re-introduces 3.0.0 via a stale composer.lock.
  • A precondition decision: confirm what the thing actually is. Our sources disagree — the package description and PM notes describe inline editing from the index page, while at least one internal read describes a display-only presentation helper. Those are different products with different risk profiles: an editable field raises validation-bypass, authorization, and audit-trail questions; a display-only field raises almost none. A half-day reading src/InlineText.php end to end and clicking the field once on a scratch resource determines whether the rest of this assessment applies at all. Do that before committing to any of the above.

When to Consider This Package

Consider it when all of these hold:

  • We run Laravel Nova 4.x or 5.x on Laravel 10/11 and PHP 8.1+. Teams on Nova 3 or Laravel 8 belong on the 2.x line — a different major and a different review.
  • The need is internal, admin-facing, and short single-value text: a name, label, title, status line.
  • We can get Nova's private Composer repository credentials into local and CI environments. This is not a footnote. Without it, builds fail for reasons unrelated to our code, and the effective cost of a "cheap" package rises sharply. Budget roughly a day for credentials, first install, and smoke testing; give those credentials an owner and an expiry plan.
  • We accept the operational shape of Outl1ne Nova add-ons — informal support, no SLA, small maintainer team — or at least accept it for this scope.
  • We have fork-or-replace appetite if it goes stale against a future Nova major. The surface area is small enough that forking is cheap; the bus factor is real enough that we should assume the question comes up.

Look elsewhere when:

  • We are not on Nova. Not a candidate outside Nova panels, full stop.
  • The requirement is a customer-facing inline-edit experience. Use a purpose-built component; a Nova field has no business on a product surface and won't survive the requirements there.
  • We need rich text, long-form content, validation-heavy workflows, or multi-field inline editing. The scope is deliberately narrow, and stretching it is where the risk lives.
  • Inline saves might touch fields with downstream derived state. If the save path bypasses Eloquent events, observers, activity logs, search indexes, and cached aggregates drift silently, and the divergence compounds with usage.
  • Inline saves may bypass Nova validation rules or authorizedToUpdate policies. Those are the two questions the pilot must answer, not the retrospective. If either answer is "no," enforce it at the model layer regardless of the field — and treat that as a cost of adoption.
  • The admin panel is business-critical with zero tolerance for a boot-time fatal and we have no staging discipline around Nova upgrades. Fix the discipline first; then this becomes viable.
  • Nobody can confirm which package this is after the half-day read. Ambiguity about whether a dependency writes to our database is disqualifying until resolved.

Calibration: 23 stars and 0 dependents place this in the long tail of the Nova ecosystem. Not disqualifying — a focused, single-purpose field is cheap to integrate precisely because it is small. But we are adopting a helper, not a platform, and we should say so out loud in the decision record. Keep the wrapper thin (a small InlineLabel::make() helper rather than a subclass, so there's one place to swap the package out), ship the first field behind a feature flag, and pilot four paths on one resource — index render, successful save, validation failure, policy denial — then re-run them after every Nova bump.

How to Pitch It (Stakeholders)

To executives: This is a small, free, MIT-licensed add-on for our internal admin panel. It lets staff edit short text values — names, labels, titles — directly from the list view instead of opening a form, saving a click or two on every routine content fix. There is no infrastructure to run, no vendor contract, no data migration, and no new service to secure. Total cost is roughly a day of engineering to wire up credentials and validate; total risk is bounded because it touches only our internal Nova panel at one or two resources, and it can be removed by deleting one line from a resource definition. The one caveat worth stating plainly: it's a community package with a very small maintainer base, so we treat it as a convenience, not a dependency of record, and we keep a thin wrapper so replacement is cheap.

To engineering: One composer require optimistdigital/nova-inline-text-field:^3.0.1, one InlineText::make() in a resource's fields(). No vendor:publish, no config, no migration — the field class is the config. Two hard requirements: pin ^3.0.1 and never 3.0.0 (that release ships an incompatible method signature against its Nova parent, which is a fatal at class load and takes down the whole panel), and get Nova's private Composer credentials into CI before anyone is surprised by a failing build on a fresh runner. Wrap it in a small factory helper rather than subclassing, put the first field behind a feature flag on one low-traffic resource, and pilot four paths — index render, successful save, validation failure, policy denial — then re-run them whenever Nova moves. Add a boot smoke test to CI (an authenticated request to /nova catches class-load fatals that unit tests can't). If the field is genuinely editable, answer two questions during the pilot: does the inline save enforce Nova validation rules and authorizedToUpdate, and does it fire Eloquent events? If either is no, backstop it with a model observer and explicit field rules. Keep a fork-or-replace note in the repo — the surface area is small, so a ~100-line custom field is a realistic fallback if it goes stale against a Nova major.

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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect