eminos/statamic-field-item-relationship
A Statamic addon that adds a Field Item Relationship fieldtype, letting you connect entries to specific items within other entries and manage those relationships directly from the control panel.
What it is: eminos/statamic-field-item-relationship is a Statamic addon (Laravel-ecosystem, CP-facing) providing a relationship fieldtype plus a frontend {{ fir }} tag. It is not a general-purpose Laravel package — its value is entirely inside a Statamic 6 control panel and Antlers/Blade templating layer.
Architecture fit: Good fit for teams already modeling content in Statamic who need item-to-item relationships without writing a bespoke fieldtype. The addon stores data through Statamic's own content conventions rather than introducing a parallel persistence layer, so it inherits Statamic's multi-site, revision, and driver behavior. The v2.0 fix — reading publish container values instead of DOM/component lookup — moves the addon from a fragile CP-internals hack toward the supported reactivity contract, which is a genuine architectural improvement, not just a bug fix.
Integration feasibility: Straightforward mechanically (composer require + addon registration), but gated hard on Statamic 6 / Vue 3. Any stack still on Statamic 5 is pinned to v1.4.1 and gets no further fixes. Integration cost is therefore dominated by the Statamic upgrade, not the addon.
Technical risk:
{{ fir }} tag only. The CP fieldtype UI — the surface most likely to regress against Statamic internals — remains untested. CI green does not mean the authoring experience works.Key questions for the maintainer/team:
{{ fir }} template output, or is the Pest suite purely additive?Stack fit: Laravel + Statamic 6 (Vue 3 CP), Composer-managed, deployed like any addon. Does not apply to Blade-only Laravel applications or to Statamic sites running a headless-only content pipeline that never uses the CP fieldtype (though the {{ fir }} tag still matters).
Migration path: Two distinct paths, and the TPM should not conflate them:
1.4.1, upgrade Statamic and all addons together, then bump this addon to 2.0 in the same change window. There is no intermediate state.2.0 directly; no migration work, but decide index-vs-keyed array storage before authoring begins.Compatibility checks before commit:
{{ fir }} output against representative templates — tag behavior is the one thing with automated coverage, so regressions here should surface early, but confirm your usage patterns are actually exercised.Sequencing:
{{ fir }}.1.4.1 and a content snapshot.Maintenance: Low code surface, but the maintenance burden is not zero — it is deferred onto Statamic upgrade cycles. Budget a recurring QA task per Statamic minor release specifically for this fieldtype's CP behavior, since CI will not catch it. Track the repo for the next 2.x patch; a single-maintainer addon that just went through a Vue 3 rewrite is statistically likely to ship follow-up fixes.
Support: No vendor SLA. Internal ownership must be explicit: whoever owns the CMS upgrade owns this addon's regression testing. Authors will report the failure mode that matters ("I can't pick the right item any more"), which is a CP bug, not a templating bug — the Pest suite will not have caught it. Establish a manual CP checklist: open field, confirm sibling-reactive options refresh when a related field changes, save, re-open, verify persisted values.
Scaling: Storage follows Statamic's driver (flat file or Eloquent). The relationship-resolution path is the scaling question: rendering listings or index templates that pull related items across many entries risks N+1-style resolution. Load-test representative index pages before committing to wide use, and lean on Statamic's augmentation/caching rather than resolving relationships inside loops.
Failure modes to plan for:
{{ fir }} output changes on upgrade — the new tests make this less likely, but their existence means the tag's behavior is now a maintained contract that can legitimately change at a major.Ramp-up: Authors need essentially no training — it behaves like a standard relationship field, and the sibling-reactivity fix makes it less surprising than before. Developer ramp-up is moderate: understanding the publish container model is necessary to debug field behavior and to judge whether a future Statamic release is safe. Realistic estimate: half a day for a developer already fluent in Statamic fieldtypes, one to two days for someone learning the CP internals. Compared with the alternative — building and maintaining an equivalent relationship fieldtype in-house — this remains the cheaper option, provided the team accepts the single-maintainer risk and funds the per-upgrade QA ritual.
How can I help you explore Laravel packages today?