statamic/cms
Statamic is a flat-first CMS built on Laravel and Git for building beautiful, easy-to-manage websites. This package provides the core Composer install for existing Laravel apps; use the Statamic app repo/CLI for new projects.
Statamic CMS is a Laravel-first, Git-powered flat-file CMS designed for developers who want a flexible, structured, and developer-friendly content management system. It integrates seamlessly with Laravel’s ecosystem, leveraging:
Key architectural strengths for a TPM:
Potential misfits:
| Integration Vector | Feasibility | Notes |
|---|---|---|
| Existing Laravel App | ✅ High | Drop-in via composer require statamic/cms. Uses Laravel’s service provider system. |
| New Laravel Project | ✅ High | Statamic CLI (statamic new) scaffolds a preconfigured Laravel app. |
| Non-Laravel PHP Apps | ⚠️ Medium | Possible but requires Laravel’s dependencies (e.g., Symfony components). Not recommended. |
| Headless/JS Frontend | ✅ High | GraphQL/REST APIs + Laravel Sanctum/Passport for auth. |
| Legacy CMS Migration | ⚠️ Medium | Statamic Migrator supports WordPress, Craft, etc. |
| Monolithic Apps | ❌ Low | Tight coupling with Laravel may conflict with legacy architectures. |
Key integration paths:
statamic/cms as a module, then:
| Risk Area | Severity | Mitigation |
|---|---|---|
| Laravel Version Lock | Medium | Statamic v6.x requires Laravel 9.x+. Pin versions in composer.json. |
| Git Dependency | High | Flat-file storage requires Git for content versioning. Backup strategies critical. |
| Performance at Scale | Medium | Test with large content sets (e.g., 10K+ entries). Use caching (Redis) and lazy-loading. |
| Custom Fieldtype Complexity | High | Extending fieldtypes requires PHP/JS knowledge. Document custom logic thoroughly. |
| Add-on Compatibility | Medium | Some third-party add-ons may lag behind Statamic’s updates. Test thoroughly. |
| Security Hardening | Medium | Statamic includes security features (e.g., CSP, auth hardening), but audit custom code. |
| Migration Downtime | High | Plan for content export/import during legacy system transitions. |
Critical Questions for Stakeholders:
Statamic is optimized for the following tech stacks:
| Component | Compatibility | Notes |
|---|---|---|
| Backend | Laravel 9.x+ | Core dependency. Uses Laravel’s routing, auth, and service container. |
| Frontend | Blade, Antlers, JS | Blade is primary; Antlers is a lightweight alternative. JS frameworks via GraphQL/REST. |
| Database | Flat-file (YAML/JSON) | No SQL database required for content. Uses filesystem/database for metadata. |
| Assets | Local, S3, etc. | Supports Flysystem adapters (e.g., AWS S3, DigitalOcean Spaces). |
| Caching | Redis, Memcached | Leverages Laravel’s cache system. Critical for performance. |
| Search | Algolia, Scout | Integrates with Laravel Scout for full-text search. |
| Auth | Laravel Sanctum/Passport | Built-in support for API tokens and OAuth. |
| CI/CD | GitHub Actions, etc. | Git-backed workflows enable seamless deployments. |
| Dev Tools | Laravel Forge, Valet | Optimized for Laravel hosting solutions. |
Non-Compatible Stacks:
Scaffold Project:
composer create-project statamic/statamic my-project
Customize:
config/statamic/collections.php.app/Fieldtypes.resources/views.Deploy:
composer require statamic/cms
php artisan vendor:publish --provider="Statamic\Providers\StatamicServiceProvider"
Route::get('/blog/{slug}', [EntryController::class, 'show'])).Product model (Laravel) with a description fieldtype (Statamic).| Compatibility Check | Status | Details |
|---|---|---|
| Laravel 9.x+ | ✅ Yes | Statamic v6.x requires Laravel 9.x |
How can I help you explore Laravel packages today?