dejwcake / craftable
Administration toolkit for Laravel - starting point for developing administration interface
Fund package maintenance!
BRACKETS-by-TRIAD
Installs: 612
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 198
Type:project
pkg:composer/dejwcake/craftable
Requires
- php: ^8.2
- dejwcake/admin-auth: ^1.0
- dejwcake/admin-listing: ^1.0
- dejwcake/admin-translations: ^1.0
- dejwcake/admin-ui: ^1.0
- dejwcake/advanced-logger: ^1.1
- dejwcake/craftable-media: ^1.0
- dejwcake/craftable-translatable: ^1.0
- illuminate/support: ^12.0
- maatwebsite/excel: ^3.1
- spatie/laravel-backup: ^9.2.7
- spatie/laravel-permission: ^6.15
Requires (Dev)
- larastan/larastan: ^3.1
- orchestra/testbench: ^10.0
- phpunit/phpunit: ^11.5.9
This package is auto-updated.
Last update: 2026-01-17 21:13:57 UTC
README
About
Hi Crafter, welcome to the official documentation for Craftable – a Laravel-based open‑source toolkit for building administration interfaces. It’s a minimal admin template and a starting point for developing back‑office systems, intranets, or CMS‑like systems.
This package is forked from BRACKETS-by-TRIAD/craftable and is continuously maintained.
You could call it a CMS, but it’s a very slim one, with as little content to manage as possible. It has:
- Admin UI based on CoreUI (http://coreui.io/)
- CRUD generator
- Authentication, profile, and users CRUD
- Translations manager
- Other helpers to quickly bootstrap your new administration area (Media Library, Admin Listing, etc.)
Demo
Try the live demo at https://demo.getcraftable.com.
Use these credentials to sign in:
- email:
demo@getcraftable.com - password:
demo123
You can see an administration of:
- Posts - this is the standard CRUD generated with the
admin-generatorpackage - Translatable Articles - this is the showcase for
translatableEloquent models - Manage access - this is an extended CRUD for managing users (your existing Eloquent model)
- Translations - where you can manage the translations stored in the database
Made of components
Our intent was to split all the stuff into several packages with as few dependencies as possible. This is what we're coming with at the moment:
- Admin UI - admin template (CoreUI assets, Blade views, Vue components)
- Admin Generator - CRUD generator for Eloquent models
- Admin Authentication - ability to authenticate into Admin area
- Translatable - ability to have translatable content (extending Laravel's default Localization)
- Admin Listing - ability to quickly build a query for administration listing for your Eloquent models
- Media Library - ability to attach media to Eloquent models
- Admin Translations - translation manager (with UI)
Craftable uses all the packages above. It also uses some other 3rd party packages (like Spatie's spatie/laravel-permission) and provides some basic default configuration to speed up development of a typical administration interface.
Requirements
Craftable requires:
- PHP 8.2+
- Supported databases:
- MariaDB 11.6+
- PostgreSQL 17+
- npm 5.3+
- Node.js 8.4+
Craftable is built on Laravel, so you should check out its requirements too. It is compatible with Laravel 12:
Installation
New Craftable project
First you need to have a Laravel application, so follow the Laravel installation guide: https://laravel.com/docs/12.x/installation
Create an empty database of your choice (PostgreSQL or MySQL).
Now require these two main packages:
composer require dejwcake/craftable composer require --dev dejwcake/admin-generator
Add Craftable to existing project
Alternatively, you can use your existing Laravel application. Start by requiring these two main packages:
composer require dejwcake/craftable composer require --dev dejwcake/admin-generator
Package installation
To install Craftable, run:
php artisan craftable:install
This is going to install all dependencies, publish all important vendor configs, migrate, set up some configs, configure webpack, and run migrations.
The command is going to generate and print the password for the default administrator account. Save this password to your clipboard, we are going to need it soon.
Basics
Once installed, navigate your browser to /admin/login. You should be able to see a login screen.
Use these credentials to log in:
- Email:
admin@getcraftable.com - Password: use the password from your clipboard (it was printed at the end of the
craftable:installcommand)
After logging in you should be able to see a default homepage and two menu items:
- Manage access
- Translations
Documentation
You can find full documentation for this package and other packages Craftable uses at https://docs.getcraftable.com/#/craftable.
Where to go next?
At this point you are ready to start building your administration area. You probably want to start building a typical CRUD interface for your Eloquent models. You should definitely check our Admin Generator documentation.
In case you rather want to create some atypical custom made administration, then you probably want to head over to Admin UI package.
Have fun and craft something awesome!
How to contribute
-
Drop a ⭐ on the GitHub repository (optional)
-
Before contributing, please read CONTRIBUTING.md and CODE_OF_CONDUCT.md.
-
Create an issue for the project or a feature you would like to add to the project, and get the task assigned to yourself. (Issues can be any bug fixes or features you want to add to this project.)
-
Fork the repo to your GitHub account.
-
Clone the repo to a local folder on your machine by using this command with your forked repository link in place of the URL below:
git clone https://github.com/dejwcake/craftable -
Create a branch using the command below.
git branch <your-branch-name> -
Check out your branch.
git checkout <your-branch-name> -
Add your code in your local machine folder.
git add . -
Commit your changes.
git commit -m "<add your message here>" -
Push your changes.
git push --set-upstream origin <your-branch-name> -
Open a pull request (compare your branch with the owner
mainbranch).
Contributors 🌟
Kudos to these amazing people
Licence
MIT Licence. Refer to the LICENSE file to get more info.
How to develop this project
Composer
Update dependencies:
docker compose run -it --rm test composer update
Composer normalization:
docker compose run -it --rm php-qa composer normalize
Run tests
Run tests with pcov:
docker compose run -it --rm test ./vendor/bin/phpunit -d pcov.enabled=1
To switch between postgresql and mariadb change in docker-compose.yml DB_CONNECTION environmental variable:
- DB_CONNECTION: pgsql
+ DB_CONNECTION: mysql
Run code analysis tools (php-qa)
PHP compatibility:
docker compose run -it --rm php-qa phpcs --standard=.phpcs.compatibility.xml --cache=.phpcs.cache
Code style:
docker compose run -it --rm php-qa phpcs -s --colors --extensions=php
Fix style issues:
docker compose run -it --rm php-qa phpcbf -s --colors --extensions=php
Static analysis (phpstan):
docker compose run -it --rm php-qa phpstan analyse --configuration=phpstan.neon
Mess detector (phpmd):
docker compose run -it --rm php-qa phpmd ./src,./install-stubs,./resources,./tests ansi phpmd.xml --suffixes php --baseline-file phpmd.baseline.xml