PHPackages                             patrikjak/starter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. patrikjak/starter

ActiveLibrary[Admin Panels](/categories/admin)

patrikjak/starter
=================

Laravel app starter - admin panel

v0.7.1(2mo ago)0359MITPHPPHP ^8.4CI passing

Since Mar 11Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/patrikjak/starter)[ Packagist](https://packagist.org/packages/patrikjak/starter)[ RSS](/packages/patrikjak-starter/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (7)Dependencies (21)Versions (15)Used By (0)

Starter
=======

[](#starter)

[![codecov](https://camo.githubusercontent.com/2074c6ae237734a74c6c434b63e3ee63719ec188c36df4b9c0ede3eb4ba128b9/68747470733a2f2f636f6465636f762e696f2f67682f70617472696b6a616b2f737461727465722f67726170682f62616467652e7376673f746f6b656e3d6b617132794c47397871)](https://codecov.io/gh/patrikjak/starter)

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require patrikjak/starter
```

Documentation
-------------

[](#documentation)

- [Web header Components](docs/metadata-header.md) - Documentation for the web header component
- [Configuration](docs/config.md) - Documentation for all available configuration options
- [Permissions](docs/permissions.md) - How to add and manage permissions
- [Extensibility](docs/extensibility.md) - How to extend DTOs, repositories, and form requests

Setup
-----

[](#setup)

After installing the package, add the package provider to the providers array in bootstrap/providers.php.

```
use Patrikjak\Starter\StarterServiceProvider;
use Patrikjak\Utils\UtilsServiceProvider;
use Patrikjak\Auth\AuthServiceProvider;

return [
    ...
    UtilsServiceProvider::class,
    AuthServiceProvider::class,
    StarterServiceProvider::class,
];
```

You need to have installed and configured `patrikjak/utils` and `patrikjak/auth` packages.

For fast setup, you can run this command:

```
php artisan install:pjstarter
```

It will publish assets, views and config file.

If you don't publish config file, you will miss all features of this package. I recommend add this script to your `composer.json` file:

```
"scripts": {
    "post-update-cmd": [
        "@php artisan vendor:publish --tag=pjstarter-assets --ansi --force",
        "@php artisan vendor:publish --tag=pjstarter-config --ansi --force",
        "@php artisan vendor:publish --tag=pjstarter-views --ansi --force",
        "@php artisan vendor:publish --tag=pjstarter-migrations --ansi --force"
    ]
}
```

All post-update-cmd can look like this:

```
"scripts": {
    "post-update-cmd": [
        "@php artisan vendor:publish --tag=pjutils-config --ansi --force",
        "@php artisan vendor:publish --tag=pjutils-assets --ansi --force",
        "@php artisan vendor:publish --tag=pjutils-translations --ansi --force",
        "@php artisan vendor:publish --tag=pjauth-assets --ansi --force",
        "@php artisan vendor:publish --tag=pjauth-config --ansi --force",
        "@php artisan vendor:publish --tag=pjauth-migrations --ansi",
        "@php artisan vendor:publish --tag=pjstarter-assets --ansi --force",
        "@php artisan vendor:publish --tag=pjstarter-config --ansi --force",
        "@php artisan vendor:publish --tag=pjstarter-views --ansi --force",
        "@php artisan vendor:publish --tag=pjstarter-migrations --ansi --force"
    ]
}
```

Adjust it to your needs. Be aware that --force flag will overwrite existing files.

Database Setup
--------------

[](#database-setup)

### 1. Configure Auth Model

[](#1-configure-auth-model)

Set the user model in `config/auth.php`:

```
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => Patrikjak\Starter\Models\Users\User::class,
    ],
],
```

### 2. Run Migrations

[](#2-run-migrations)

```
php artisan migrate
```

### 3. Seed Roles and Permissions

[](#3-seed-roles-and-permissions)

The setup order matters - permissions must exist before they can be assigned to roles.

```
# Create roles (SUPERADMIN, ADMIN, USER) from the auth package
php artisan seed:user-roles

# Sync permissions to database (creates all permissions defined in PermissionsDefinition)
php artisan pjstarter:permissions:sync
```

### 4. Seed Application Data

[](#4-seed-application-data)

Create your own seeders for roles with permissions, users, and content. The recommended seeder order:

1. **RoleSeeder** - Assign permissions to roles (roles are created by `seed:user-roles`, permissions by `pjstarter:permissions:sync`)
2. **UserSeeder** - Create users with role assignments
3. **Content seeders** - Authors, article categories, articles, static pages, etc.

### Quick Reset

[](#quick-reset)

```
php artisan migrate:fresh --force && php artisan seed:user-roles && php artisan pjstarter:permissions:sync && php artisan db:seed
```

Feature Toggles
---------------

[](#feature-toggles)

Enable or disable features in `config/pjstarter.php`:

```
'features' => [
    'auth' => true,           // Authentication (false = open access, auth routes return 404)
    'dashboard' => true,      // Dashboard page
    'profile' => true,        // User profile and password change
    'static_pages' => false,  // Static pages with metadata and slugs
    'articles' => false,      // Articles, categories, and authors
    'users' => false,         // User, role, and permission management
],
```

When `auth` is set to `false`:

- Auth routes (`/login`, `/register`, `/password/*`) return 404
- Admin routes are accessible without authentication
- All authorization checks are bypassed
- Profile and change-password routes are disabled

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance88

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~36 days

Recently: every ~1 days

Total

11

Last Release

68d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/49360467?v=4)[Patrik Jakab](/maintainers/patrikjak)[@patrikjak](https://github.com/patrikjak)

---

Top Contributors

[![patrikjak](https://avatars.githubusercontent.com/u/49360467?v=4)](https://github.com/patrikjak "patrikjak (15 commits)")

---

Tags

package

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/patrikjak-starter/health.svg)

```
[![Health](https://phpackages.com/badges/patrikjak-starter/health.svg)](https://phpackages.com/packages/patrikjak-starter)
```

###  Alternatives

[backpack/crud

Quickly build admin interfaces using Laravel, Bootstrap and JavaScript.

3.4k3.4M207](/packages/backpack-crud)[conedevelopment/root

Root is an admin package for Laravel applications.

3713.1k2](/packages/conedevelopment-root)[eveseat/web

SeAT Web Interface

2723.2k135](/packages/eveseat-web)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
