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.
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.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.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.Consider it when all of these hold:
Look elsewhere when:
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.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.
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.
How can I help you explore Laravel packages today?