area17/twill
Twill is an open-source Laravel package for building a custom CMS fast. It provides a polished admin UI with prebuilt features and Vue components, stays flexible and extensible, works headless or integrated, and lets you use your own models with no lock-in.
Architecture fit: Twill is a Laravel-centric CMS with strong alignment to Laravel's ecosystem patterns. The addition of Laravel 12 support ensures compatibility with the latest framework version while maintaining adherence to Laravel's architectural principles (e.g., service container, Eloquent ORM). The repeaters crops configuration enhancement extends media handling capabilities without disrupting core architecture.
Integration feasibility: High. The update process is explicitly documented (composer update + php artisan twill:update), and all changes are backward-compatible. Existing projects on Laravel 11 or earlier remain supported, with new features optional for adoption.
Technical risk: Low. Patch releases typically address bugs and add support without breaking changes. Dependency updates (Axios, nanoid, HTTP middleware) are minor version bumps with no reported security vulnerabilities in the changelog. The PHP 8.4/8.5 CI additions indicate proactive maintenance but don't introduce runtime risks.
Key questions:
Stack fit: Ideal for Laravel 12 projects. The package now officially supports Laravel 12's dependency tree and features (e.g., improved type safety), while maintaining compatibility with Laravel 8+ through additive changes.
Migration path:
composer update area17/twill to fetch v3.5.3php artisan twill:update to republish assets (delete old published assets if version-controlled)php artisan twill:buildCompatibility: Fully backward-compatible with Laravel 11 and earlier. Existing custom form fields, icons, and module structures remain unaffected. The "hardcoded namespace" fix ensures singleton models work correctly in custom namespace setups.
Sequencing:
Maintenance: Reduced long-term burden from dependency updates (e.g., Axios 0.28.1 → 0.30.2)
How can I help you explore Laravel packages today?