anomaly/repeater-field_type
Repeater field type for the Anomaly Streams platform. Adds a repeatable field that lets editors build multi-row sets of sub-fields, such as lists, feature grids, or FAQ entries, directly in the control panel, with each row saved as structured data on the entry.
Architecture fit. anomaly/repeater-field_type is not a general-purpose Laravel package — it is a satellite addon for the AnomalyLabs Streams Platform (the framework underneath PyroCMS 3). It plugs into the platform's field-type contract (FieldType base class + service provider + Twig-rendered control-panel input). Fit is therefore binary: strong if the target application is already a Streams/PyroCMS build, effectively zero otherwise. Do not evaluate it as a standalone Composer dependency.
Integration feasibility. Mechanically simple — composer require, provider auto-discovery, then attach the field type to a stream via the control panel. Real feasibility depends on the surrounding platform, not this repo: with 1 star, 0 dependents, and a single-maintainer org, this is a low-signal artifact with no production evidence to point at. Assume you are the first meaningful adopter.
Technical risk.
composer.json will likely cap you at Laravel 5.x/6.x and PHP 7.x. PHP 8.1+ compatibility is unlikely without a fork.Key questions to resolve before any commitment.
grid, multiple, related) already cover the same use case?Stack fit. Only viable inside a Laravel + Streams Platform application. Twig is the control-panel view layer; admin UI behavior is driven by platform JS conventions. Any project on a modern Laravel (9/10/11) or PHP 8.2+ should treat this as incompatible until proven otherwise by a spike.
Migration path.
composer require anomaly/repeater-field_type pinned to the exact platform version, verify provider registration, then add the field type to a stream assignment in the CP. Backfill any existing structured data into the expected JSON shape via a one-off artisan command rather than hand-editing rows.Compatibility. Pin anomaly/streams-platform in composer.lock and treat any platform bump as a breaking change requiring regression on every repeater field. If the project must run PHP 8+, budget for a fork: bump the constraint, fix Twig/typed-property deprecations, and add a smoke test around input rendering and save/load round-trip.
Sequencing.
Maintenance. Treat as vendored code, not a dependency. Low LOC makes it cheap to own (~1–2 days to audit fully), but you inherit all bug fixes. Fork to your org, tag it, and add it to your internal registry. Budget a recurring line item for platform-upgrade regressions.
Support. No vendor, no SLA, no meaningful community — GitHub issues only, and with 0 dependents there is no crowd to lean on. Named internal ownership is a hard prerequisite; without it, this becomes orphaned code inside your product.
Scaling. Fine for small repeaters on low-volume content (a handful of rows per record). Degrades on three axes: (a) no index on repeated values, so reporting and search require application-side parsing; (b) JSON column size growth on unbounded repeaters — enforce a row cap in the field config; (c) control-panel render cost for large repeat sets. If the field feeds analytics, search, or filtering, this is the wrong primitive regardless of code quality.
Failure modes to instrument.
Ramp-up. Low for a developer already fluent in Streams/PyroCMS field types (half a day). Medium-to-high for a general Laravel team — the platform's stream/assignment/field-type abstractions and Twig admin layer are non-obvious. Plan ~1 week end-to-end to fork, harden, pilot, and document; do not staff this as a drop-in library install.
Verdict. Viable only as an internal fork inside an existing Streams Platform application with a small, well-bounded repeat requirement and a designated owner. The 0.525 score and 1-star/0-dependent profile accurately reflect adoption risk; the MIT license and small surface area are the only mitigating factors.
How can I help you explore Laravel packages today?