ericlagarda/nova-text-card
A simple Laravel Nova card for displaying custom text, HTML, or notes directly on your dashboard, resource pages, or detail screens—useful for instructions, summaries, and lightweight static content without building a custom Vue component.
Card subclass, a tiny Vue component, a stub, and a build config. The real decision is not "adopt vs. replace" but "spend an afternoon writing ~40 lines in-house vs. take on an unmaintained dependency for cosmetic gain." Framing this correctly keeps it out of procurement and architecture-review cycles entirely.nova-components/ as a first-party card and budget a few hours of ownership, rather than carrying a dead Composer requirement with no upstream fix path.Consider it when:
nova-components/, own it, and pin it to our Nova version.canSee() (an ops runbook card for ops, a billing-notes card for finance).Look elsewhere — or write it yourself — when:
nova.mix/Vue 3 asset pipeline. Assume breakage and verify in a disposable environment before committing to anything.Card.vue renders via v-html before passing anything user-sourced).TextCard, or a maintained page/markdown component.Decision rule: default to forking or reimplementing. Adopt the raw package only if a time-boxed proof of concept proves it works on our exact Nova version and we pin it explicitly with a documented rollback.
For executives: This is a small, free UI component that lets us place blocks of text — announcements, links, guidance — onto our internal Laravel Nova admin dashboard. It is a low-cost convenience, not a strategic capability, and it does not touch the customer-facing product or the roadmap. The catch: it was last updated in mid-2020, has essentially no adoption (20 stars, zero dependent projects), and is very likely incompatible with our current Nova version. My recommendation is not to add it as a dependency. If we want the capability, we copy the handful of files it consists of into our own codebase and own them — a few hours of work that removes the maintenance risk entirely. Either path keeps spend negligible and avoids a dead dependency in our stack. It also gives us a cheap way to test whether staff read dashboard content before we invest in anything larger.
For engineering: A custom Nova card that renders static text with a few display options (title, content, markdown/HTML mode, alignment, width, dashboard or resource placement, inherited canSee() scoping). Tiny surface area: a Card subclass, a Vue component, a stub, and a build config. Unmaintained since June 2020, no dependents, no release history beyond that — treat it as a reference implementation, not a package. If we want the capability, fork it into nova-components/ and pin it to our Nova version, or write the equivalent in an afternoon. Do not add it to composer.json as a third-party requirement without confirming Nova 4/5 compatibility, and plan on that check failing. Two implementation traps if we do fork: content() resolves on every dashboard and detail request, so cache or precompute any computed value rather than querying or calling an API inside it; and confirm whether Card.vue renders via v-html, in which case never pass unsanitized, user-sourced content. Sequence any trial as: inventory Nova/Laravel/PHP versions → inspect source and license → disposable-environment PoC → adopt/fork/replace decision → pin and document → deploy internal-only with rollback.
How can I help you explore Laravel packages today?