Skip to content

nasirkhan/laravel-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,687 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Laravel Starter - A CMS like modular starter project built with the latest Laravel framework.

Laravel Starter (based on Laravel 12.x)

Laravel Starter is a Laravel 12.x based simple starter project. Most of the commonly needed features of an application like Authentication, Authorisation, Users and Role management, Application Backend, Backup, Log viewer are available here. It is modular, so you may use this project as a base and build your own modules. A module can be used in any Laravel Starter based project. Here Frontend and Backend are completely separated with separate routes, controllers, and themes as well.

Please let me know your feedback and comments.

Latest Stable Version StyleCI Build License PHP Version Require

Reporting a Vulnerability

If you discover any security-related issues, please send an e-mail to Nasir Khan Saikat via [email protected] instead of using the issue tracker.

Appplication Demo

Check the following demo project. It is just a straight installation of the project without any modification.

Demo URL: https://laravel.nasirkhn.com

You may use the following account credentials to access the application backend.

User: [email protected]
Pass: secret

User: [email protected]
Pass: secret

Custom Commands

We have created a number of custom commands for the project. The commands are listed below with a brief about their use of it.

Install / Setup

Run the interactive setup wizard for a fresh project. It copies .env, generates an app key, configures the database, runs migrations, seeds data, creates the storage link, and builds frontend assets.

php artisan starter:install

Use --skip-npm to skip the frontend build, --demo to seed demo data without prompting, or --skip-db if the database is already set up.

Update

After pulling changes from the repository, run:

php artisan starter:update

This runs composer update, checks for new module migrations, runs outstanding migrations, and clears all caches.

Create New module

To create a project use the following command, you have to replace the MODULE_NAME with the name of the module.

php artisan module:build MODULE_NAME

You may want to use --force option to overwrite the existing module. if you use this option, it will replace all the existing files with the default stub files.

php artisan module:build MODULE_NAME --force

Clear All Cache

composer clear-all

this is a shortcut command to clear all cache including config, route, and more

Code Style Fix

We are now using Laravel Pint to make the code style stay as clean and consistent as the Laravel Framework. Use the following command to apply CS-Fix.

composer pint

Along with Laravel Pint, we are using prettier to format the blade templates. You can install the prettier extension in your favorite editor. The following command will format the blade templates.

npm run format

or if you are using yarn then you can use the following command.

yarn format

Role - Permissions

Several custom commands are available to add and update role-permissions. Please read the Role - Permission Wiki page, where you will find the list of commands with examples.

Features

The Laravel Starter comes with several features which are the most common in almost all applications. It is a template project which means it is intended to be built in a way that it can be used for other projects.

It is a modular application, and some modules are installed by default. It will be helpful to use it as a base for future applications.

  • Admin feature and public views are completely separated as Backend and Frontend namespace.
  • Major features are developed as Modules. A module like Posts, Comments, and Tags are separated from the core features like User, Role, Permission

Core Features

  • User Authentication
  • Social Login
    • Google
    • Facebook
    • Github
    • Build in a way adding more is much easier now
  • User Profile with Avatar
  • Role-Permissions for Users
  • Dynamic Menu System
  • Language Switcher
  • Localization enabled across the project
  • Backend Theme
    • Bootstrap 5, CoreUI
    • Fontawesome 6
    • Dark Mode
  • Frontend Theme
    • Tailwind
    • Fontawesome 6
    • Dark Mode
  • Article Module
    • Posts
    • Categories
    • Tags
    • Comments
    • wysiwyg editor
    • File browser
  • Application Settings
  • External Libraries
    • Bootstrap 5
    • Fontawesome 6
    • CoreUI
    • Tailwind
    • Datatables
    • Select2
    • Date Time Picker
  • Backup (Source, Files, Database as Zip)
  • Log Viewer
  • Notification
    • Dashboard and details view

User Guide

Installation

Follow the steps mentioned below to install and run the project. You may find more details about the installation in Installation Wiki.

From GitHub Template (recommended)

If you created a new repository from this GitHub template, or cloned it directly:

# 1. Install PHP dependencies
composer install

# 2. Run the interactive setup wizard — handles .env, database, migrations, seeding, and npm assets
php artisan starter:install

Or as a single shortcut after composer install:

composer setup

For a true one-liner from a fresh clone, convenience scripts are included:

# Linux / macOS
bash setup.sh

# Windows (PowerShell)
.\setup.ps1

Both scripts run composer install and then launch php artisan starter:install. Pass any starter:install flags through, e.g. bash setup.sh --demo.

The setup wizard will guide you through environment configuration, database selection, migrations, seeding, and building frontend assets. When finished it prints the app URL and default login credentials.

Available options:

Option Description
--skip-db Skip database setup
--skip-seed Skip database seeding
--skip-npm Skip npm install and asset build
--demo Seed with demo data (no prompt)

Via Composer create-project

composer create-project nasirkhan/laravel-starter

This runs migrations automatically. Afterwards run the setup wizard to seed and build assets:

php artisan starter:install --skip-db

After creating the new permissions use the following commands to update cached permissions.

php artisan cache:forget spatie.permission.cache

Database Seeding

Two seeder categories are available:

  • Essential (always run): users, roles, permissions, menu — AuthTableSeeder, MenuDatabaseSeeder
  • Dummy data (optional): posts, categories, tags — disabled via SEED_DUMMY_DATA=false in .env
# Full seed (essential + dummy data)
php artisan migrate:fresh --seed

# Essential data only
php artisan db:seed-essential --fresh

# Add or refresh demo content at any time
php artisan laravel-starter:insert-demo-data
php artisan laravel-starter:insert-demo-data --fresh

For production, set SEED_DUMMY_DATA=false and use --force:

php artisan db:seed-essential --fresh --force

Docker and Laravel Sail

This project is configured with Laravel Sail (https://laravel.com/docs/sail). You can use all the docker functionalities here. To install using docker and sail:

  1. Clone or download the repository
  2. Go to the project directory and run composer install
  3. Create .env file by copying the .env-sail. You may use the command to do that cp .env-sail .env
  4. Update the database name and credentials in .env file
  5. Run the command sail up (consider adding this to your alias: alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail')
  6. Run the command sail artisan migrate --seed
  7. Link storage directory: sail artisan storage:link
  8. Since Sail is already up, you can just visit http://localhost:80

Screenshots

Home Page

Laravel Starter Homepage Dark Mode Laravel Starter Homepage

Login Page

Laravel Starter Login

Posts Page

Laravel Starter Posts Page

Backend Dashboard

Laravel Starter Admin Dashboard Dark Mode Laravel Starter Admin Dashboard


Laravel Starter Posts List


Edit-Posts-Laravel-Starter