- What Laravel version does this package support, and is it compatible with PHP 8.2+?
- Laravel Starter is built for **Laravel 13.x** and requires **PHP 8.2+**, aligning with Symfony 6.x. It leverages modern Laravel features like Livewire, Spatie Permissions, and Tailwind, ensuring compatibility with the latest ecosystem. Always check the package’s `composer.json` for minor version updates.
- How do I install Laravel Starter in a new Laravel 13.x project?
- Run `composer create-project nasirkhan/laravel-starter your-project-name` to scaffold a fresh project. For existing Laravel apps, use `composer require nasirkhan/laravel-starter` and execute `php artisan starter:install` to set up routes, migrations, and configurations. The package includes a demo with pre-configured admin credentials (e.g., `super@admin.com`/`secret`).
- Can I use this package for a headless CMS or API-first application?
- Laravel Starter is **not API-first**—it prioritizes Livewire for dynamic frontend interactions and assumes a server-rendered admin panel. For headless CMS or mobile apps, you’ll need to manually add RESTful endpoints (e.g., using Laravel Sanctum or Passport) or integrate with Inertia.js for SPA support. The modular architecture allows customization, but API layers are secondary.
- How are frontend and backend separated in this package?
- The package enforces a **strict separation** via distinct namespaces, routes (`/admin` vs. `/`), controllers, and themes. Frontend uses **Tailwind CSS** for public sites, while the backend relies on **CoreUI + Bootstrap 5** for admin dashboards. Modules can extend either layer independently, reducing coupling. Check the `routes/` and `app/Modules/` directories for structure details.
- What if my project already uses React/Vue or a different CSS framework?
- Laravel Starter defaults to **Tailwind/CoreUI**, which may conflict with existing frontend stacks like React/Vue. For SPAs, consider **Inertia.js** to bridge Laravel with your preferred framework. If you’re using Bootstrap 4 or another CSS library, audit dependencies with `composer why` and override styles in your `resources/css/app.css` to avoid conflicts.
- How do I create and manage reusable modules in this starter?
- Use the `php artisan module:build` command to scaffold a new module with its own routes, migrations, and controllers. Modules are self-contained and can be shared across projects. For example, to add a blog module, run the command, then define its features in `app/Modules/Blog/`. The package includes built-in commands like `starter:update` to sync module migrations and caches.
- Does Laravel Starter support Docker or Laravel Sail out of the box?
- Yes, the package includes **Laravel Sail** support for local development. Run `./vendor/bin/sail up` to start containers. For production, you may need to customize the `docker-compose.yml` for CI/CD or Kubernetes. The package lacks built-in queue/Redis support, so add these services manually if needed (e.g., for background jobs or caching).
- What authentication and authorization system does it use, and can I replace it?
- The package integrates **Laravel Breeze** for authentication and **Spatie Laravel-Permission** for role-based access control (RBAC). Core features like user/role management are modular, so you can replace them by publishing and overriding the module’s config/migrations (e.g., `php artisan vendor:publish --tag=starter-auth`). For custom auth, extend the `AuthServiceProvider` or use Laravel’s built-in guards.
- Are there any built-in tools for backups or log management?
- Yes, the package includes a **backup tool** (likely using Laravel’s `backup` facade) and a **log viewer** for the admin panel. Backups are configured in `config/backup.php` and can be triggered via Artisan commands. For advanced log management, consider integrating third-party tools like Laravel Horizon or ELK Stack, as the built-in viewer is basic.
- How does this package handle database migrations, and what databases are supported?
- Laravel Starter assumes **MySQL or PostgreSQL** and includes migrations for users, roles, permissions, and modules. For other databases (e.g., SQLite, MongoDB), you’ll need to create custom adapters or modify the `config/database.php` settings. Always run `php artisan migrate` after installation or updates. The package’s `starter:update` command handles pending migrations automatically.