PHPackages                             akira/setup - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. akira/setup

ActiveLibrary[Testing &amp; Quality](/categories/testing)

akira/setup
===========

Interactive Laravel project setup command with best practices, testing tools, and CI/CD workflows

1.5.0(4mo ago)31.3k—8.3%[1 PRs](https://github.com/akira-io/setup/pulls)3MITPHPPHP ^8.4CI passing

Since Dec 3Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/akira-io/setup)[ Packagist](https://packagist.org/packages/akira/setup)[ GitHub Sponsors](https://github.com/kidiatoliny)[ RSS](/packages/akira-setup/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelog (7)Dependencies (16)Versions (9)Used By (3)

Akira Setup
===========

[](#akira-setup)

[![Latest Version on Packagist](https://camo.githubusercontent.com/12ab091ee3d72232ae0007edf4226d25947d4014360b53f7d2ef696a3d37ecb4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616b6972612f73657475702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/akira/setup)[![Total Downloads](https://camo.githubusercontent.com/8c6834da6b49dc4dd7c3b9452c584e163ab4036b1ac1144f587694b2e95ec04c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616b6972612f73657475702e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/akira/setup)

An interactive Laravel package installer that sets up your project with best practices, testing tools, code quality standards, and CI/CD workflows in seconds.

Features
--------

[](#features)

**Interactive Setup** - Beautiful CLI interface using Laravel Prompts
**Smart Package Management** - Automatically installs PHP and Node.js packages
**Auto-Detection** - Detects your preferred Node package manager (npm, pnpm, yarn, bun)
️ **Configuration Files** - Generates Laravel Pint, Rector, and Release-It configs
**GitHub Actions** - Installs pre-configured CI/CD workflows
**Composer Scripts** - Adds convenient testing and linting scripts
**Fully Typed** - PHP 8.4 with strict types and modern features
**Tested** - Comes with Pest tests

Requirements
------------

[](#requirements)

- PHP 8.4+
- Laravel 12+
- Composer 2+

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

[](#installation)

Install the package via Composer:

```
composer require --dev akira/setup
```

The package will automatically register itself via Laravel's package auto-discovery.

Usage
-----

[](#usage)

Run the interactive setup:

Laravel (inside a Laravel app):

```
php artisan akira:setup
```

Packages/any Composer project (outside a Laravel app):

```
vendor/bin/setup
```

Help and command list for the bin:

```
vendor/bin/setup --help
vendor/bin/setup list
```

The command will guide you through:

1. **Select PHP Packages** - Choose from essential Laravel packages
2. **Select Dev Packages** - Pick testing and code quality tools
3. **Select Node Packages** - Choose release management tools
4. **Package Manager** - Select npm, pnpm, yarn, or bun
5. **GitHub Workflows** - Optionally install CI/CD pipelines

What Gets Installed
-------------------

[](#what-gets-installed)

### PHP Packages (require)

[](#php-packages-require)

- `nunomaduro/essentials` - Essential Laravel helpers
- `akira/laravel-auth-logs` - Authentication logging

### PHP Packages (require-dev)

[](#php-packages-require-dev)

- `akira/laravel-debugger` - Enhanced debugging tools
- `driftingly/rector-laravel` - Laravel-specific Rector rules
- `fakerphp/faker` - Fake data generator
- `larastan/larastan` - PHPStan for Laravel
- `laravel/boost` - Laravel performance optimizer
- `laravel/pail` - Log viewer
- `laravel/pint` - Code style fixer
- `mockery/mockery` - Mocking framework
- `nunomaduro/collision` - Error handler
- `pestphp/pest` - Testing framework
- `pestphp/pest-plugin-browser` - Browser testing
- `pestphp/pest-plugin-laravel` - Laravel support
- `pestphp/pest-plugin-type-coverage` - Type coverage
- `rector/rector` - PHP refactoring tool
- `roave/security-advisories` - Security vulnerability scanner

### Node.js Packages (devDependencies)

[](#nodejs-packages-devdependencies)

- `release-it` - Release management tool
- `@commitlint/cli` - Commit message linter
- `@commitlint/config-conventional` - Conventional commits config
- `@release-it/conventional-changelog` - Changelog generator

### Configuration Files

[](#configuration-files)

#### `pint.json`

[](#pintjson)

Laravel Pint configuration with comprehensive rules for:

- Strict typing
- Modern PHP 8.4 features
- Final classes
- Readonly properties
- Type declarations
- Code quality standards

#### `rector.php`

[](#rectorphp)

Rector configuration with:

- PHP 8.4 upgrade rules
- Laravel 12 compatibility
- Code quality improvements
- Type declaration automation
- Dead code removal
- Privatization rules

#### `.release-it.json`

[](#release-itjson)

Release-It configuration for:

- Semantic versioning
- Conventional changelog generation
- Automatic GitHub releases
- Git tag management

### Composer Scripts

[](#composer-scripts)

The following scripts are added/merged into `composer.json`:

```
{
  "scripts": {
    "lint": [
      "rector",
      "pint --parallel",
      "npm run lint"
    ],
    "test:type-coverage": "pest --type-coverage --min=100",
    "test:lint": [
      "pint --parallel --test",
      "rector --dry-run",
      "npm run test:lint"
    ],
    "test:unit": "pest --parallel --coverage --exactly=100.0",
    "test:types": [
      "phpstan",
      "npm run test:types"
    ],
    "test": [
      "@test:type-coverage",
      "@test:unit",
      "@test:lint",
      "@test:types"
    ]
  }
}
```

### Package.json Scripts

[](#packagejson-scripts)

```
{
  "scripts": {
    "release": "release-it"
  }
}
```

### GitHub Actions Workflows

[](#github-actions-workflows)

#### `.github/workflows/tests.yml`

[](#githubworkflowstestsyml)

Comprehensive testing pipeline with:

- PHP 8.4 test matrix
- Laravel 12 compatibility
- Multiple OS support
- Code quality checks
- Static analysis with PHPStan

#### `.github/workflows/release-discord.yml`

[](#githubworkflowsrelease-discordyml)

Automatic Discord notifications for new releases with:

- Release version
- Release notes
- Repository link
- Timestamp

Usage Examples
--------------

[](#usage-examples)

### Running Tests

[](#running-tests)

```
# Run all tests with type coverage, unit tests, linting, and type checking
composer test

# Run only unit tests
composer test:unit

# Run only type coverage
composer test:type-coverage

# Run only linting
composer test:lint

# Run only type checking
composer test:types
```

### Code Quality

[](#code-quality)

```
# Auto-fix code style and refactor
composer lint

# Check code style without fixing
pint --test

# Run Rector dry-run
rector --dry-run
```

### Creating Releases

[](#creating-releases)

```
# Interactive release (follows semantic versioning)
npm run release

# Specific version
npm run release -- --increment patch
npm run release -- --increment minor
npm run release -- --increment major
```

Architecture
------------

[](#architecture)

The package follows Spatie-level quality standards:

- **Action Pattern** - Business logic isolated in action classes
- **DTOs** - Data Transfer Objects for complex data structures
- **Service Provider** - Auto-discovery for seamless integration
- **Dependency Injection** - No facades, pure DI
- **Strict Typing** - PHP 8.4 with `strict_types=1`
- **Final Classes** - Immutability where appropriate
- **Readonly Properties** - Modern PHP features
- **No Static Calls** - Testable, maintainable code

### Package Structure

[](#package-structure)

```
akira/setup/
├── src/
│   ├── Console/
│   │   └── SetupCommand.php          # Main interactive command
│   ├── Actions/
│   │   ├── InstallPhpPackagesAction.php
│   │   ├── InstallNodePackagesAction.php
│   │   ├── PublishConfigFilesAction.php
│   │   └── PublishWorkflowsAction.php
│   ├── DTOs/
│   │   ├── PackageSelection.php
│   │   └── ComposerScripts.php
│   ├── Support/
│   │   ├── PackageDetector.php       # Package manager detection
│   │   └── FileManager.php           # File operations
│   └── AkiraSetupServiceProvider.php
├── stubs/
│   ├── pint.json
│   ├── rector.php
│   ├── release-it.json
│   └── github/
│       ├── release-discord.yml
│       └── tests.yml
└── tests/
    ├── Feature/
    │   └── SetupCommandTest.php
    └── Unit/
        ├── PackageDetectorTest.php
        └── ComposerScriptsTest.php

```

Testing
-------

[](#testing)

Run the package tests:

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Akira](https://github.com/akira)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

48

—

FairBetter than 95% of packages

Maintenance84

Actively maintained with recent releases

Popularity23

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.9% 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 ~13 days

Recently: every ~19 days

Total

8

Last Release

74d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c42e59ca0b3864a382dc0c3e290f8cf7d75bbe3eab10a3af0f71d5785f89d0bc?d=identicon)[kidiatoliny](/maintainers/kidiatoliny)

---

Top Contributors

[![kidiatoliny](https://avatars.githubusercontent.com/u/48266788?v=4)](https://github.com/kidiatoliny "kidiatoliny (56 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

testinglaravelscaffoldingsetupci-cddev-tools

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/akira-setup/health.svg)

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

###  Alternatives

[laravel/dusk

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

1.9k36.7M259](/packages/laravel-dusk)[tightenco/jigsaw

Simple static sites with Laravel's Blade.

2.2k438.5k29](/packages/tightenco-jigsaw)[laravel-zero/framework

The Laravel Zero Framework.

3371.4M369](/packages/laravel-zero-framework)[timacdonald/log-fake

A drop in fake logger for testing with the Laravel framework.

4235.9M56](/packages/timacdonald-log-fake)[travoltron/dusk-secure

A more secure Laravel Dusk that provides simple end-to-end testing and browser automation without exposing routes or authentication.

371.9k](/packages/travoltron-dusk-secure)

PHPackages © 2026

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