streams/core
The core of Streams, a modular Laravel framework for building data-driven applications and CMS-style platforms. Define database-driven streams, fields, and addons, then manage everything through a powerful control panel. Extensible, developer-friendly, and built for rapid development.
Architecture fit. streams/core is not a utility package — it is the engine layer of an opinionated application platform, sitting on top of Eloquent and introducing a parallel data-modeling vocabulary (streams, assignments, field types, repositories, criteria). It fits one profile well: a Laravel application whose core product requirement is configurable, rapidly-evolving data structures — CMS-style content types, admin/back-office tooling, internal data-management apps. It fits poorly everywhere else, because it competes with rather than complements conventional app/Models persistence. Core is also deliberately incomplete: the user-facing value (control panel, UI, addons) lives in sibling repos (streams/platform, streams/ui), so "install core" is not a shippable story on its own.
Integration feasibility. Installation is mechanically simple (Composer, publish config/migrations, register provider, define streams, read/write via repositories). The real feasibility constraint is the multi-repo dependency graph: a working implementation pulls several pinned sibling packages, each with its own Laravel/PHP constraints. Expect to conform your runtime to the package, not the reverse. This is verifiable in days, not weeks, and should be verified before any roadmap commitment.
Technical risk — high, and mostly non-technical in nature.
NOASSERTION) is a hard legal gate, not a checklist item; usability is undetermined until resolved.Key questions for the TPM to force closures on.
streams/ui, or does any real feature pull in the whole family?Stack fit. Adopt as an isolated subsystem, not a platform bet. Target one bounded domain with a clean seam (repository interfaces at the boundary), keep the rest of the application on standard Eloquent, and preserve the ability to swap implementations without touching callers. Stream definitions must not become the schema of record for core business entities.
Migration path. Greenfield module only. Retrofitting existing tables into streams — rewriting migrations, models, and queries into an unsupported paradigm — is high-cost and low-reversibility. If the bounded module succeeds and the dependency proves healthy, expand scope deliberately; if it fails, you delete one namespace.
Compatibility. Plan for a fork as the baseline operating model, not a contingency. Stand up an internal fork pinned to a known commit, sourced via a Composer VCS/path repository, with Laravel constraints widened as needed. Confirm all sibling package versions resolve together on your target Laravel before feature work begins.
Sequencing.
streams/ui under the same gates or build a thin admin surface yourself — the latter is usually cheaper than inheriting a second stale dependency.Maintenance. This becomes an owned dependency on day one. Expect to carry the fork, patch Laravel compatibility, and triage security advisories internally. Allocate recurring engineering capacity — realistically a fraction of an FTE — and treat "no maintainer response in 30 days" as the default assumption rather than a failure mode.
Support. No vendor, no SLA, no community of scale. The only support surface is internal documentation and a named code owner. Onboarding material must be written, not linked.
Scaling. The engine resolves stream/assignment metadata at runtime to build queries; without an aggressive cache layer expect additional round trips per request versus hand-written models. This is manageable but must be measured under realistic load during the spike, not assumed. The harder scaling constraint is organizational: the pool of engineers who know this paradigm is effectively zero, so capacity does not scale by hiring.
Failure modes to monitor.
Ramp-up. Budget two to four weeks before a competent Laravel developer is productive. The cost is unlearning conventions: streams vs. migrations, assignments vs. columns, criteria vs. query scopes, repositories vs. models. With no tutorials or Stack Overflow coverage, every non-obvious question is answered by reading source. This learning tax plus fork ownership must be in the business case — on pure cost math the package rarely beats Filament or hand-rolled CRUD. It wins only if config-driven modeling is itself the product requirement.
Recommendation. Do not adopt as a platform foundation. Consider only as a bounded, forked, internally owned component for a configurable-data use case, and only after license and maintenance gates clear within a single sprint. If those gates cannot clear, build the same repository/criteria abstraction in-house over standard Eloquent — keep the good idea, discard the dependency risk.
How can I help you explore Laravel packages today?