statamic/cms
Statamic is the flat-first, Laravel + Git powered CMS for building beautiful, easy to manage websites. This package is the core Composer library installed into an existing Laravel app, offering extensive documentation, community support, and official Pro support.
Architecture fit. Statamic is not a standalone CMS — it is a Composer package explicitly designed to be installed into an existing Laravel application. That makes it an additive service-provider-level integration rather than a parallel stack, which is unusually low-friction if we are already standardized on Laravel. The content model is "flat-first": entries, blueprints, and configuration live as Markdown/YAML in Git, with an optional database driver when relational storage is required. Templating is Antlers, with Blade available alongside it.
Integration feasibility. Two supported paths, both conventional:
statamic/statamic), which carries the front-end build, config, and starter content.composer require statamic/cms into our existing app, then register content structures and routes.Critical scoping note: this repository is the core package only. The scaffold, build tooling, and starter content live in a second repo. A delivery plan that assumes this package alone is a complete starting point will under-estimate setup work.
Technical risk.
NOASSERTION, and the project's own documentation distinguishes free core usage from Statamic Pro, which is also the only path to official developer support. This is a commercial-terms question, not a footnote. Resolve it before any architecture commitment.postinstall code execution. Our build pipeline needs dependency pinning and audit gates.Dependents: 0 is expected for an application-level package rather than a library, but the practical reading is that there is little third-party tooling or wrapper ecosystem. Integration glue is ours to own.Key questions.
composer.json?Stack fit. Statamic rides on Laravel's container, routing, authentication, authorization policies, queues, filesystem abstraction, and cache. Existing middleware, service providers, and CI conventions carry over largely intact. This is the package's strongest argument: the integration surface is Laravel itself, not a bespoke plugin API.
Migration path. Incremental, not big-bang. Install into a non-critical Laravel app or a spike branch, model a single collection with one blueprint, wire one route, and exercise the control panel end-to-end. Expand only after that reference implementation is validated. For content originating in another CMS, the referenced Statamic Migrator provides a supported import path rather than a hand-rolled ETL.
Compatibility decisions to make explicitly, not by default:
Sequencing.
statamic/cms constraint and the lock file.Maintenance. A recurring patch cadence is mandatory, not discretionary. Budget a standing monthly upgrade window plus an out-of-band hotfix path for security releases. Because the changelog is well-maintained and release-tagged, triage is cheap — but someone must own reading it. With zero dependents, no upstream integrator is absorbing this work on our behalf.
Support. Official developer support is explicitly gated to Statamic Pro projects; community support runs through GitHub Discussions and Discord. Escalation is therefore contractual. If this CMS fronts a revenue-bearing site, the support tier belongs in vendor management, not in a "we'll ask on Discord" contingency.
Scaling. Read paths are strong: flat-file reads plus static caching and a CDN handle high traffic well. The write path is the constraint — concurrent editorial writes to flat files are the contention point. Practical guidance: offload asset containers to S3-compatible storage, put image manipulation on queues, and avoid multi-node write topologies without shared or coordinated storage.
Failure modes to design against:
Ramp-up. Editors generally adapt quickly; the control panel is the approachable part. The real cost is engineering: Antlers tag syntax, the blueprint/fieldset abstraction, and reasoning about content as versioned files rather than database rows. Blade-fluent developers will feel the shift. Budget a timeboxed spike and one reference implementation before committing the team, and treat the Antlers/blueprint learning curve as a schedule line item rather than assumed background knowledge.
How can I help you explore Laravel packages today?