| Install | |
|---|---|
composer require tabacitu/ball-starter-kit |
|
| Latest Version: | 1.4.2 |
| PHP: | ^8.2 |
See all screenshots.
This project is an application starter kit. It's an alternative to Laravel Breeze and Laravel Jetstream that uses the BALL stack (Bootstrap, Any-javascript-library-you-want, Laravel, Livewire). It provides the same features they do (auth, profile management, etc) with a simpler tech stack, fewer dependencies and better code organization (arguably).
Key differences from Laravel Breeze & Laravel Jetstream:
It's something that we've built to scratch our own itch, because we need to create many new Laravel SaaS projects from scratch. We've made it public because there's nothing online that fixes the problem in a way we like, and we believe this can help other people save a lot of time and headache. If you use and like this project, please open an issue and tell us about it, the good and the bad - we love to know we helped.
If you'd like to see any of these features implemented in future versions, please open an issue:
Comprehensive documentation is available in the /docs directory:
These documents are designed to become your own project documentation once you start using this starter kit.
The starter kit loads Tabler CSS and JS files from CDNs for development convenience, but uses Basset to internalize these assets for production. This approach:
To use Basset for your own assets, see the Basset documentation.
You can install the BALL Starter Kit in one of three ways:
laravel new --using tabacitu/ball-starter-kit your-app-name
composer create-project tabacitu/ball-starter-kit your-app-name
git clone https://github.com/tabacitu/ball-starter-kit.git your-app-name
cd your-app-name
composer install
After installation, regardless of the method used:
.env file with your database credentials and other settingsphp artisan key:generate (if not already done by the installer)php artisan migratephp artisan serveThe BALL stack is a series of tech choices that we prefer to make, when building Laravel projects. The acronym comes from Bootstrap, Any-javascript-library, Laravel and Livewire. When compared with other popular stacks like VILT and TALL, it's more similar to the TALL stack, with a few differences:
<link> and <script> tags (the way the web was designed to work);The choices in the BALL stack are a result of intentional tech minimalism. After 15+ years of building web apps, we have found that the best thing you can do for most projects is to use boring technologies, keep dependencies to a minimum and stick to tried-and-true web practices. That results in fast, fun and maintainable web development. The BALL stack is a response to the "shiny object syndrome" that plagues modern web development, where everything changes every few months or years, with very little use to most web dev projects themselves. Key benefits of the BALL Stack:
The "best tool for the job" depends from project to project. And tech choices are subject to personal opinion. We found in 90% of all projects, it's best to keep things simple, and have a minimal stack, so we reach for the following tools:
When you think "Backpack for Laravel" you think "admin panel". That's 100% true, that's what our main product Backpack/CRUD and all its add-ons will do for you. This package is different. Its goal is NOT to help you build an admin panel. Its goal is to help you build an application (most likely a SaaS), as fast as possible, from scratch (pun intended).
We strongly believe in most projects it's best to:
The BALL Starter Kit doesn't fix the "administrator" problem, it fixes the "end-user" problem. It brings in the simple tech stack we love and all the wisdom we've gained in the last 15 years building applications. You can use it as a boilerplate for your new projects, and build on top of it. It's a solid foundation, with a lot of the boilerplate code you'd normally have to write, already written for you. We've made a lot of choices in terms of tech stack, code organization, design patterns and dependencies, so you don't have to. Instead of trying to make sense of the countless options out there, you can just start building your app. If you liked the simple Backpack way of doing things, you'll love this app starter kit.
In one word - complete control over the files. All admin panels have the pretty much the same features, so it makes most sense to use a library like Backpack, where we maintain the features and add more. Application on the other hand can be completely different. They need a level of customization that can only be achieved sustainably one way - having those files in your project, to do whatever the f*$k you want with them. That's what BALL Starter Kit provides, and when you should use it instead of Backpack. When you want complete control.
Key differences from Backpack/CRUD:
The package already provides a comprehensive test suite for the features it includes. For detailed information about the test structure, tools, and best practices, see the Testing documentation.
You can run the tests with:
php artisan test
Or using PHPUnit directly:
vendor/bin/phpunit
If you want to contribute, please read the CONTRIBUTING.md file first. We have a limited scope for this project, so if it's a feature, please open an issue and ask, before spending a lot of time creating a PR.
Development and maintenance is possible thanks to the companies that are using the BALL Starter kit - companies like:
If you discover a security vulnerability, please send an e-mail to Cristian Tabacitu via cristian.tabacitu@digitallyhappy.com. All security vulnerabilities will be promptly addressed.
BALL Starter Kit is open-source software licensed under the MIT license.