doublethreedigital/runway
Runway lets you use Eloquent models as first-class resources in Statamic, giving editors a familiar control panel for creating, editing, and listing database records without building custom addons. It bridges Laravel models with Statamic’s content workflow.
Architecture fit. Runway is a Statamic addon (Rad Pack / Duncan McClean) that surfaces Laravel Eloquent models as first-class Statamic "resources" — usable in the Control Panel, Antlers/Blade, GraphQL and REST. That is a strong architectural fit where the system of record is already a relational database and we do not want to duplicate domain data into Statamic's flat-file content layer. Existing Laravel domain models (e.g. products, venues, people) can be exposed without a bespoke CP build. The v9.7.0 additions are directionally aligned with that fit:
order/sort column. This materially reduces editorial custom-build effort for catalogue-style resources.title_field / title_format (#844) allows display titles derived from JSON columns (e.g. localized {"en": "...", "de": "..."} payloads or EAV-style attributes). Useful, but it implicitly endorses flexible-schema storage, which carries data-quality risk.Integration feasibility. Low-to-moderate. Standard Composer install and config publish, resource classes registered via config, and a migration for any new order column. No service rewrite required. The two new capabilities are opt-in and additive, so a brownfield integration is feasible in slices.
Technical risk.
Key questions.
Stack fit. Best suited to a Laravel monolith or modular monolith where Eloquent is already the system of record and Statamic supplies the CP, routing and content API. Poor fit if content is author-owned flat files with no database backing, or if the team intends to move to a headless CMS — Runway ties delivery to the Laravel runtime.
Migration path. Two distinct journeys: (a) adopting Runway — start read-only, one low-risk resource, then expand; (b) upgrading Runway — pin the current version, read the v9 upgrade guide in full, branch-upgrade in staging, and reconcile any config changes (especially the warming flag) before touching production.
Compatibility. Do not treat v9.7.0 as a drop-in without a verified matrix covering Statamic version, Laravel version, PHP version and database driver (JSON column semantics differ meaningfully between MySQL, MariaDB and Postgres — directly relevant to #844). Confirm GraphQL/REST addon compatibility if we expose Runway data through the API.
Sequencing.
Maintenance. Modest and mostly configuration-level, but it is a live dependency on a fast-moving major line — budget a recurring review each Statamic major. Our own surface area is resource definitions, a config file, and any migrations for ordering; that is small and reviewable.
Support. Community support via GitHub issues and the Statamic Discord; response times are not contractual. For anything business-critical, plan internal ownership: someone must be able to read the addon source and patch or fork it. Treat the maintainer as a single point of failure in the risk register.
Scaling. Runway is DB-bound, so scaling follows the database: index the columns used in title_field, ordering and route resolution; be alert to N+1 queries when listing resources in Antlers or the CP. Static cache warming of Runway URIs can become a material cost at high resource counts — the new opt-out (#850) is the primary lever, but disabling warming trades build time for first-request latency and origin load. Validate with production-scale row counts, not fixtures.
Failure modes.
Ramp-up. Low for a Laravel-fluent engineer (a day or two to a working resource); moderate for content/editorial staff who must learn a CP that behaves slightly differently from native collections (ordering, publishing, revisions semantics may not map one-to-one). Budget a short enablement session and a written "what Runway does and does not support" note for editors before the first resource ships.
Caveat: this assessment is derived from the v9.7.0 release notes only — no source review, compatibility matrix, or upgrade guide was available. The open questions above should be closed before sizing the work.
How can I help you explore Laravel packages today?