Skip to main content
Back to packages
3,957 GitHub stars

area17/twill

View on GitHub

Description

Twill is an open source Laravel package that helps developers rapidly create a custom CMS that is beautiful, powerful, and flexible.

Benefits

With Twill's vast number of pre-built features and associated library of Vue.js UI components, developers can focus their efforts on the unique aspects of their applications instead of rebuilding standard ones.

Built to get out of your way, Twill offers:

  • No lock-in, create your own data models or hook existing ones
  • No front-end assumptions, use it within your Laravel app or as a headless CMS
  • No bloat, turn off features you don’t need
  • No need to write/adapt HTML for the admin UI
  • No limits, extend as you see fit

Feature List

Modules

  • Enhanced Laravel “resources” models
  • Command line generator and conventions to speed up creating new ones
  • Based on PHP traits and regular Laravel concepts (migrations, models, controllers, form requests, repositories, Blade views)
  • Fully custom forms per content type
  • Slug management, including the ability to automatically redirect old urls
  • Configurable content listings with searching, filtering, sorting, publishing, featuring, reordering and more
  • Support for all Eloquent ORM relationships (1-1, 1-n, n-n, polymorphic)
  • Content versioning

CMS UI Components

  • Large library of plugged-in Vue.js form components with tons of options for maximum flexibility and composition
  • Completely abstracted HTML markup. You’ll never have to deal with Bootstrap HTML again, which means you won’t ever have to maintain frontend-related code for your CMS
  • Input, text area, rich text area form fields with option to set SEO optimized limits
  • Configurable WYSIWYG built with TipTap
  • Inline translated fields with independent publication status (no duplication)
  • Select, multi-select, content type browsers for related content and tags
  • Form repeaters
  • Date and color pickers
  • Flexible content block editor (dynamically composable from all form components)
  • Custom content blocks per content type

Media library

  • Media/files library with S3 and imgix integration (3rd party services are swappable)
  • Image selector with smart cropping
  • Ability to set custom image requirements and cropping parameters per content type
  • Multiple crops possible per image for art directed responsive
  • Batch uploading and tagging
  • Metadata editing (alternative text, caption)
  • Multi fields search (filename, alternative text, tags, dimensions…)

Configuration based features

  • User authentication, authorization and management
  • Fully configurable CMS navigation, with three levels of hierarchy and breadcrumbs for limitless content structure
  • Configurable CMS dashboard with quick access links, activity log and Google Analytics integration
  • Configurable CMS global search
  • Intuitive content featuring, using a bucket UI. Put any of your content types in "buckets" to manage any layout of featured content or other concepts like localization

Developer experience

  • Maintain a Laravel application, not a Twill application
  • Support for Laravel 9 and up – Twill will be updated to support all future versions
  • Support for both MySQL and PostgreSQL databases
  • No conflict with other Laravel packages – keep building with your tools of choice
  • No specific server requirements, if you can deploy a Laravel application, you can deploy Twill
  • No data lock in – all Twill content types are proper relational database tables, so it’s easy to move to Twill from other solutions and to expose content created with your Twill CMS to other applications
  • Previewing and side by side comparison of fully rendered frontend site that you’ll get up and running very quickly no matter how you built your frontend (fully headed Laravel app, hybrid Laravel app with your own custom API endpoints or even full SPA with frameworks like React or Vue)
  • Scales to very large amount of content without performance drawbacks, even on minimal resources servers (for what it’s worth, it’s running perfectly fine on a $5/month VPS, and you can cache frontend pages if you’d like through packages like laravel-response-cache or a CDN like Cloudfront)

Related Content on Laravel Daily

Video

Recent Courses on Laravel Daily

Testing in Laravel 13 For Beginners

26 lessons
1 h 41 min read

Laravel 13 Eloquent: Expert Level

41 lessons
1 h 34 min

How to Structure Laravel 13 Projects

16 lessons
1 h 32 min read

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.