newebtime/repeatering-field_type
Repeatering Field Type is a Laravel/PHP field type for repeatable form inputs, letting you add, reorder, and manage multiple grouped values within a single field. It simplifies structured content editing in admin panels and Streams-style applications.
Architecture fit. This is not a general-purpose Laravel package — it is a PyroCMS/Streams Platform field type addon. Its runtime contract is with Anomaly\Streams\Platform\Addon\FieldType\FieldType, the addon service provider, and PyroCMS's form/table builder pipeline, not with Laravel's core container in any generic sense. That makes it architecturally viable only inside an existing PyroCMS 3.x installation (Laravel 5.x lineage). It cannot be dropped into a modern Laravel 10/11 application, and it will not compose with Livewire/Filament/Inertia-era admin tooling. If the intent was "a repeatable JSON field for our Laravel app," this package is the wrong primitive and the effort should go into a first-party cast + form component instead.
Integration feasibility. Mechanically simple: composer require from a VCS repository, register the addon, assign the field type to a Streams field, define the repeater's inner fields in the field type's configuration, and render via the standard PyroCMS form/entry APIs. The real friction is everything around that: the repository is on GitLab under a personal/org namespace with zero stars, zero dependents, and a score of 0. There is no observable community validation, no downstream usage to learn from, and no signal that anyone else has run this in production. Integration cost is therefore not "install time" but "we are the first and only QA function."
Technical risk.
repeater-field_type. Confirm whether payload formats are compatible; if not, swapping is a data migration, not a composer change.Key questions to resolve before any commitment.
composer.json constraints — PHP version, pyrocms/* / anomaly/streams-platform version range, Laravel range?repeater-field_type and grid-field_type? Is anything here genuinely unique, or is it a cosmetic fork?Recommendation: do not adopt net-new. If already embedded, treat as technical debt: fork, pin, test, and plan exit.
Stack fit. Only fits a PyroCMS 3.x monolith on the Laravel 5.x line, installed as a composer addon and registered through the Streams addon manifest. It does not fit a modern Laravel service, and it does not fit a headless/API-first architecture without custom serialization work on top.
Migration path (if adopting or exiting).
repeater-field_type or grid-field_type uses a compatible payload, plan a swap with a data transform and a dual-read period. If payloads are incompatible, budget an explicit backfill script and a per-Stream cutover.Compatibility. Pin exact versions of PHP, anomaly/streams-platform, and the addon in composer.json, and commit the lockfile. Verify the addon loads under the installed PyroCMS minor version before touching stored data — field type boot failures surface as fatal errors on entry forms, not graceful degradation.
Sequencing. (1) Inventory and payload census → (2) fork and pin → (3) characterization tests on a staging copy → (4) decide harden vs. replace → (5) if replacing, build dual-read and backfill → (6) cut over per Stream, oldest/lowest-traffic first. Front-load the inventory; every later estimate depends on it.
Maintenance. You become the maintainer. There is no upstream to file issues against and no release cadence to track. Budget ongoing ownership: PHP/Laravel security patching flows through PyroCMS, which is itself dormant, so the real cost is an eventual platform migration, not this addon. Fork ownership should be assigned to a named engineer, not "the team."
Support. No vendor, no community, no dependents to consult. Internal escalation path is whoever wrote the characterization tests. Documentation will have to be authored from the code.
Scaling. Repeater fields concentrate data in a single column, which is fine at tens of rows per entry and hostile at thousands: no indexing inside the payload, no server-side filtering, full deserialization on every hydrate. Expect N+1-style overhead when rendering tables of entries with repeater columns, and large row sizes that bloat backups. Nested repeaters multiply both problems.
Failure modes to instrument. Field type boot/registration failure after a composer update (site-wide form breakage); JSON/serialization decode errors on legacy payloads (blank or fatal render); silent truncation or loss when the form definition changes and old payloads no longer match; partial saves on validation failure mid-repeater; template exceptions during admin table rendering.
Ramp-up. The codebase is likely small — a field type class, views, and a config — so code comprehension is days, not weeks. The real ramp-up is PyroCMS/Streams domain literacy: addon registration, field type lifecycle, entry hydration, and the admin form/table builder. Assume two to three weeks before an engineer is productive and confident enough to modify stored-data behavior. Pair the characterization tests with a short written primer so that knowledge does not stay in one head.
How can I help you explore Laravel packages today?