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

Textarea Field Type Laravel Package

anomaly/textarea-field_type

Textarea field type for the Anomaly CMS field type system, adding a multi-line text input control to module and stream forms in PyroCMS/Anomaly. Lightweight and narrowly scoped, with little adoption and limited documentation.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit

  • anomaly/textarea-field_type is not a general-purpose Laravel package — it is a Streams Platform addon (PyroCMS 3.x lineage). It registers a field type that renders a plain <textarea> form control and persists a string value through Streams' field type contract.
  • The package is intentionally thin: a service provider, a TextareaFieldType class extending the base field type, a config/lang folder, and a Blade view for the input. There is no business logic, no persistence layer of its own, and no public API surface beyond the Streams field type registration.
  • Fit is binary: useful only if the application is already on anomaly/streams-platform. In a vanilla Laravel application this package adds nothing that {{ Form::textarea(...) }} or a Blade component does not already provide.
  • Opportunity score of 33.24 with 0 stars / 0 dependents correctly signals a niche, single-ecosystem artifact, not a reusable component.

Integration feasibility

  • Trivial where applicable: composer require anomaly/textarea-field_type, auto-discovery registers the provider, then the field type is assigned to a Streams field via the control panel.
  • Not applicable otherwise — there is no standalone integration path and no reason to force one.

Technical risk

  • Low code risk, high ecosystem risk. The code is small enough to audit in under an hour and MIT-licensed, so forking is cheap.
  • The real risk is the dependency graph: Streams Platform ^1.0 targets Laravel 5.x / PHP 7.x. Pulling this into a modern Laravel 10/11 codebase is a non-starter without a fork and a compatibility rewrite.
  • Effectively unmaintained upstream. Zero dependents and zero stars means no community pressure to patch, no security triage, and no upstream responsiveness.
  • No WYSIWYG, markdown, or sanitization semantics — it is a raw textarea. Any XSS or length handling is the consuming application's responsibility.

Key questions

  1. Are we, or will we be, running PyroCMS 3.x / Streams Platform? If no, this evaluation terminates here.
  2. Does our Streams version already ship an equivalent textarea field type, making this addon redundant?
  3. What Laravel and PHP versions are pinned, and is a fork-and-forward-port budgeted?
  4. Who owns the fork internally if upstream goes dark (already near-dark)?
  5. What is the content contract — plain text, HTML, or markdown — and where is output escaping enforced?
  6. Is there a migration path off Streams on the roadmap that would make this investment throwaway?

Integration Approach

Stack fit

  • Laravel 5.1–5.8 era, PHP 7.0–7.4, Composer with package auto-discovery. Fits a legacy PyroCMS 3.x application or a Streams-based internal admin.
  • Does not fit Laravel 9+/PHP 8.1+ without modification to the service provider, config publishing, and any type hints incompatible with newer framework contracts.

Migration path

  • Adopting it: only as a field type assignment inside Streams. No application-level wiring required.
  • Migrating away from it: straightforward. The field type stores plain text, so the underlying data is portable — map the Streams field column to a standard Eloquent string/text attribute and replace the control with a native Blade textarea or a form builder component. No proprietary serialization to unwind.
  • Migrating the package itself forward: fork under our org, bump composer.json constraints, replace deprecated Streams/Laravel contracts, and re-publish the view namespace. Budget ~1–2 engineer-days.

Compatibility

  • Constrain to the exact Laravel/PHP matrix the host app already runs; do not upgrade this package independently of Streams Platform.
  • Watch for view namespace and config key collisions if other field type addons are installed — Streams addons all publish into the same namespaces.

Sequencing

  1. Confirm Streams/PyroCMS presence and version (gate — stop if absent).
  2. Verify the built-in field type inventory before adding a dependency; avoid redundant addons.
  3. If adopted, pin the version in composer.lock and vendor or mirror the source to insulate against upstream removal.
  4. Define the sanitization/validation contract at the field level (max length, allowed HTML) before content accrues.
  5. If a Streams exit is planned, sequence this migration with the broader platform migration rather than doing it twice.

Operational Impact

Maintenance

  • Treat as vendored code, not a dependency. Upstream activity is negligible; assume zero patches. MIT license makes an internal fork legally and practically clean.
  • Ongoing cost is near zero while the host stack is frozen, and spikes sharply at any Laravel/PHP upgrade.

Support

  • No vendor support, no maintainer SLA, no issue triage. Internal ownership is mandatory if it lands in production.
  • Onboarding cost is dominated by Streams Platform domain knowledge, not this package — the field type contract, addon registration, and assignment model are the learning curve.

Scaling

  • Negligible runtime footprint: it renders one form control and reads/writes one text value per entry. No queries, no caching concerns, no queue interaction.
  • The only scaling consideration is storage and payload size: long-form textarea content can bloat entry payloads. Choose TEXT vs MEDIUMTEXT/LONGTEXT deliberately, and avoid loading the field in list/grid views where it is not displayed.

Failure modes

  • Composer resolution failure against a modern Laravel constraint — the most likely and most visible failure.
  • Silent rendering breakage from Blade view namespace or config key collisions with sibling addons after an upgrade.
  • XSS if the stored value is emitted unescaped in a front-end template; the package provides no output sanitization.
  • Unbounded input if no max-length validation is configured, leading to oversized rows and slow entry queries.
  • Abandonment risk realized: upstream repository removal or archival, leaving installs unreproducible without a mirror.

Ramp-up

  • A Laravel-fluent engineer understands the package itself in 1–2 hours.
  • Productive use inside Streams realistically takes 1–2 days to learn field type registration, assignment, and view overrides.
  • Recommendation posture: do not adopt as a new dependency. Use only as a maintenance artifact inside an existing Streams application, fork it immediately, and exclude it from any greenfield architecture decision.
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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource