PHPackages                             piconepaolo/laravel-react-untitledui-starter-kit - 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. [Framework](/categories/framework)
4. /
5. piconepaolo/laravel-react-untitledui-starter-kit

ActiveProject[Framework](/categories/framework)

piconepaolo/laravel-react-untitledui-starter-kit
================================================

Core base Mirai: Laravel + React + Inertia + Untitled UI con auth, ruoli/permessi e gestione utenti.

06TypeScriptCI failing

Since Jun 5Pushed 1mo agoCompare

[ Source](https://github.com/mirai-software/laravel-react-untitledui-starter-kit)[ Packagist](https://packagist.org/packages/piconepaolo/laravel-react-untitledui-starter-kit)[ RSS](/packages/piconepaolo-laravel-react-untitledui-starter-kit/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (3)Used By (0)

Mirai Core Base — Laravel + React + Untitled UI
===============================================

[](#mirai-core-base--laravel--react--untitled-ui)

Introduzione
------------

[](#introduzione)

Questo repository è il **core base** di Mirai: la fondazione comune da cui partono tutti i progetti web. Raccoglie l'essenziale condiviso da ogni applicazione — autenticazione, shell UI, design system, ruoli/permessi con interfaccia e gestione utenti — già pronto e testato.

È costruito su [Inertia](https://inertiajs.com), che permette di realizzare SPA React moderne usando il routing e i controller server-side di Laravel: la produttività del backend Laravel unita alla potenza del frontend React e alla compilazione fulminea di Vite.

Stack: **Laravel 13** · **PHP 8.3+** · **Inertia v3** · **React 19** · **TypeScript** · **Tailwind CSS 4** · componenti [Untitled UI](https://www.untitledui.com/).

Cosa include
------------

[](#cosa-include)

- **Auth completo** (Fortify): login, registrazione, reset password, verifica email, 2FA, conferma password. Il primo utente registrato diventa automaticamente `admin`.
- **Ruoli &amp; permessi con UI** ([spatie/laravel-permission](https://spatie.be/docs/laravel-permission)): CRUD ruoli, matrice permessi a checkbox, assegnazione ruoli all'utente. Il ruolo `admin` bypassa ogni check via `Gate::before`.
- **Gestione utenti**: CRUD con soft delete (disattivazione/riattivazione) e assegnazione ruoli nel form.
- **Navigazione filtrata per permessi**: la sidebar e le azioni mostrano solo ciò che l'utente può fare (permessi condivisi via Inertia).
- **Rotte come attributi** ([spatie/laravel-route-attributes](https://github.com/spatie/laravel-route-attributes)): i path sono dichiarati sui controller.
- **App shell** Untitled UI: sidebar, header, breadcrumbs, layout, design system.
- **Tooling**: Pint, Larastan, Rector, Pest/PHPUnit, Husky (pre-commit/pre-push), ESLint, Prettier.

Getting Started
---------------

[](#getting-started)

```
composer install
npm install
cp .env.example .env
php artisan key:generate
php artisan migrate
```

To start the development server:

```
composer run dev
```

This concurrently starts the Laravel server, queue worker, log viewer (Pail), and Vite dev server.

Composer Packages
-----------------

[](#composer-packages)

### nunomaduro/essentials [github](https://github.com/nunomaduro/essentials)

[](#nunomaduroessentials-github)

> Provides better defaults for your Laravel applications.

What it does:

- Strict Models
- Auto Eager Loading
- Optional Unguarded Models
- Immutable Dates
- Force HTTPS
- Safe Console
- Asset Prefetching
- Prevent Stray Requests
- Fake Sleep

### laravel/pint [github](https://github.com/laravel/pint)

[](#laravelpint-github)

> Laravel Pint is an opinionated PHP code style fixer for minimalists.

Code style fixer configured with `pint.json` file.

### rector-laravel [github](https://github.com/driftingly/rector-laravel)

[](#rector-laravel-github)

> Rector instantly upgrades and refactors the PHP code of your application.

rector-laravel uses Rector and adds extra rules for Laravel. It automates upgrading your code to the latest version of PHP and Laravel and does auto-refactoring based on the rules in `rector.php`.

### phpstan and larastan [github](https://github.com/nunomaduro/larastan)

[](#phpstan-and-larastan-github)

> Larastan focuses on finding errors in your code. It catches whole classes of bugs even before you write tests for the code.

Configured with `phpstan.neon`. This project uses level 6.

Testing
-------

[](#testing)

This project uses PHPUnit for testing.

```
composer test              # Run full test suite (lint + tests)
php artisan test --compact # Run tests only
```

Git Hooks (Pre-commit &amp; Pre-push)
-------------------------------------

[](#git-hooks-pre-commit--pre-push)

This project uses [Husky](https://typicode.github.io/husky/) to automate code quality checks before commits and pushes. These hooks ensure consistent code quality across the team.

### Pre-commit Hook

[](#pre-commit-hook)

Runs automatically before every commit using [lint-staged](https://github.com/lint-staged/lint-staged). Only staged files are checked:

**For JavaScript/TypeScript files** (`resources/**/*.{ts,tsx,js,jsx}`):

- **Prettier**: Auto-formats code
- **ESLint**: Lints and auto-fixes issues

**For TypeScript files** (`resources/**/*.{ts,tsx}`):

- **TypeScript**: Type-checks without emitting files

**For PHP files** (`{app,bootstrap,config,database,routes,tests}/**/*.php`):

- **Pint**: Auto-formats code according to Laravel standards

**For PHP application files** (excluding tests):

- **PHPStan (Level 6)**: Static analysis to catch bugs

If any check fails, the commit will be blocked. Fix the issues and try again.

### Pre-push Hook

[](#pre-push-hook)

Runs automatically before every push:

1. **Test Suite** (`composer test`): Runs all tests

    - If tests fail, the push is blocked
2. **Rector Analysis** (`vendor/bin/rector process --dry-run`): Checks for potential refactoring improvements

    - If Rector suggests changes, you'll be prompted to continue or abort
    - Run `vendor/bin/rector process` to apply suggestions automatically

### Working with Git Hooks

[](#working-with-git-hooks)

#### Bypassing Hooks (Not Recommended)

[](#bypassing-hooks-not-recommended)

If you absolutely need to bypass hooks:

```
git commit --no-verify -m "your message"
git push --no-verify
```

**Note**: Only bypass hooks if you understand the consequences. Your code may not meet quality standards.

#### Running Checks Manually

[](#running-checks-manually)

```
# Run lint-staged manually
npm run precommit

# Run individual checks
npm run format          # Format frontend code
npm run lint            # Lint frontend code
npm run types           # Check TypeScript types
vendor/bin/pint         # Format PHP code
vendor/bin/phpstan analyse  # Run PHPStan analysis

# Run test suite
composer test

# Run Rector
vendor/bin/rector process --dry-run  # Check suggestions
vendor/bin/rector process            # Apply suggestions
```

#### Setting Up Hooks (First Time)

[](#setting-up-hooks-first-time)

Hooks are automatically installed when you run `npm install` (via the `prepare` script). If they're not working:

```
npm run prepare  # Reinstalls Husky hooks
```

### Configuration Files

[](#configuration-files)

FilePurpose`.husky/pre-commit`Pre-commit hook script`.husky/pre-push`Pre-push hook script`.lintstagedrc.json`Lint-staged configuration`pint.json`Pint (PHP formatter) rules`phpstan.neon`PHPStan static analysis config`rector.php`Rector refactoring rules`eslint.config.js`ESLint configuration`.prettierrc`Prettier configuration`tsconfig.json`TypeScript configurationLicense
-------

[](#license)

Il Mirai core base è software open-source rilasciato sotto licenza MIT.

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance61

Regular maintenance activity

Popularity4

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor3

3 contributors hold 50%+ of commits

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/526435b39d132e2e1f1a3e198df8ca430dbb2a30f26fc6719a6f598ecd728533?d=identicon)[piconepaolo](/maintainers/piconepaolo)

---

Top Contributors

[![joetannenbaum](https://avatars.githubusercontent.com/u/2702148?v=4)](https://github.com/joetannenbaum "joetannenbaum (67 commits)")[![taylorotwell](https://avatars.githubusercontent.com/u/463230?v=4)](https://github.com/taylorotwell "taylorotwell (47 commits)")[![hugosaintemarie](https://avatars.githubusercontent.com/u/10208811?v=4)](https://github.com/hugosaintemarie "hugosaintemarie (36 commits)")[![tnylea](https://avatars.githubusercontent.com/u/601261?v=4)](https://github.com/tnylea "tnylea (27 commits)")[![pushpak1300](https://avatars.githubusercontent.com/u/31663512?v=4)](https://github.com/pushpak1300 "pushpak1300 (26 commits)")[![dev-iadicola](https://avatars.githubusercontent.com/u/124099993?v=4)](https://github.com/dev-iadicola "dev-iadicola (19 commits)")[![WendellAdriel](https://avatars.githubusercontent.com/u/11641518?v=4)](https://github.com/WendellAdriel "WendellAdriel (17 commits)")[![piconepaolo](https://avatars.githubusercontent.com/u/37159302?v=4)](https://github.com/piconepaolo "piconepaolo (7 commits)")[![JoeyMckenzie](https://avatars.githubusercontent.com/u/16873254?v=4)](https://github.com/JoeyMckenzie "JoeyMckenzie (3 commits)")[![pataar](https://avatars.githubusercontent.com/u/3403851?v=4)](https://github.com/pataar "pataar (3 commits)")[![SantosVilanculos](https://avatars.githubusercontent.com/u/95357132?v=4)](https://github.com/SantosVilanculos "SantosVilanculos (3 commits)")[![rrmesquita](https://avatars.githubusercontent.com/u/30835404?v=4)](https://github.com/rrmesquita "rrmesquita (3 commits)")[![ace-of-aces](https://avatars.githubusercontent.com/u/79840527?v=4)](https://github.com/ace-of-aces "ace-of-aces (2 commits)")[![crynobone](https://avatars.githubusercontent.com/u/172966?v=4)](https://github.com/crynobone "crynobone (2 commits)")[![matthiasweiss](https://avatars.githubusercontent.com/u/11889938?v=4)](https://github.com/matthiasweiss "matthiasweiss (2 commits)")[![michaelnabil230](https://avatars.githubusercontent.com/u/46572405?v=4)](https://github.com/michaelnabil230 "michaelnabil230 (2 commits)")[![msamgan](https://avatars.githubusercontent.com/u/29948727?v=4)](https://github.com/msamgan "msamgan (2 commits)")[![Nothing-Works](https://avatars.githubusercontent.com/u/18606648?v=4)](https://github.com/Nothing-Works "Nothing-Works (2 commits)")[![Rinnsy](https://avatars.githubusercontent.com/u/68080844?v=4)](https://github.com/Rinnsy "Rinnsy (2 commits)")[![simonswiss](https://avatars.githubusercontent.com/u/485747?v=4)](https://github.com/simonswiss "simonswiss (2 commits)")

### Embed Badge

![Health badge](/badges/piconepaolo-laravel-react-untitledui-starter-kit/health.svg)

```
[![Health](https://phpackages.com/badges/piconepaolo-laravel-react-untitledui-starter-kit/health.svg)](https://phpackages.com/packages/piconepaolo-laravel-react-untitledui-starter-kit)
```

###  Alternatives

[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k39.6M300](/packages/laravel-dusk)[nineinchnick/edatatables

Grid widget for the Yii Framework, wrapper for the DataTables jQuery plugin

173.2k](/packages/nineinchnick-edatatables)[link-cloud/fast-hyperf

LinkCloud Fast Hyperf

241.2k1](/packages/link-cloud-fast-hyperf)

PHPackages © 2026

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