PHPackages                             joshdonnell/laravel-starter-kit-vue - 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. joshdonnell/laravel-starter-kit-vue

ActiveProject[Framework](/categories/framework)

joshdonnell/laravel-starter-kit-vue
===================================

An end-to-end type-safe Laravel 13 starter kit with auto-generated TypeScript types, Vue 3, and shadcn-vue components for fast front-end prototyping

v1.3.6(3w ago)219[1 PRs](https://github.com/joshdonnell/laravel-starter-kit-vue/pulls)MITVuePHP ^8.5.0CI passing

Since Feb 12Pushed 1mo agoCompare

[ Source](https://github.com/joshdonnell/laravel-starter-kit-vue)[ Packagist](https://packagist.org/packages/joshdonnell/laravel-starter-kit-vue)[ RSS](/packages/joshdonnell-laravel-starter-kit-vue/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (9)Dependencies (150)Versions (16)Used By (0)

  ![Logo for Laravel Starter Kit](art/header-light.png)
 [![Build Status](https://github.com/joshdonnell/laravel-starter-kit-vue/actions/workflows/tests.yml/badge.svg)](https://github.com/joshdonnell/laravel-starter-kit-vue/actions) [![Latest Stable Version](https://camo.githubusercontent.com/e1abb99e66821c464b94d37541dcb1799f88822dd92f4bbf470c540bfcc5e077/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a6f7368646f6e6e656c6c2f6c61726176656c2d737461727465722d6b69742d767565)](https://packagist.org/packages/joshdonnell/laravel-starter-kit-vue) [![License](https://camo.githubusercontent.com/7b6490a31f274140461889c3f93d17a2ed038925112cedec0b3b1701b221a467/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a6f7368646f6e6e656c6c2f6c61726176656c2d737461727465722d6b69742d767565)](https://packagist.org/packages/joshdonnell/laravel-starter-kit-vue)

An end-to-end type-safe Laravel 13 starter kit with auto-generated TypeScript types, Vue 3, and shadcn-vue components for fast front-end prototyping. Built on top of [Nuno Maduro's Laravel Starter Kit](https://github.com/nunomaduro/laravel-starter-kit-inertia-vue), this kit extends it with Wayfinder, Laravel Data, and unplugin-auto-import to provide a Nuxt-like developer experience when writing Vue code within a Laravel Inertia application.

Tech Stack
----------

[](#tech-stack)

**Backend:** PHP 8.5+, Laravel 13, Inertia.js v3, Laravel Fortify, Spatie Laravel Data, Nuno Maduro's Essentials

**Frontend:** Vue 3, reka-ui, shadcn-vue, TypeScript, Tailwind CSS v4

**Type Generation:** Laravel Wayfinder (auto-generated route &amp; action types), Spatie Laravel Data + TypeScript Transformer (auto-generated DTO types)

**DX Tooling:** Vite Plus, unplugin-auto-import, unplugin-vue-components, vite-plugin-watch

**Code Quality:** PHPStan (level max via Larastan), Rector, Pint, oxlint, oxfmt, Pest v5 (100% coverage)

Features
--------

[](#features)

- **Fully type-safe end-to-end** — Auto-generated TypeScript types for routes, actions, and Data Transfer Objects
- **Zero-config auto imports** — Vue APIs, composables, and components are auto-imported just like Nuxt
- **Auto-regenerating types** — Editing `app/Data` or `app/Enums` automatically triggers TypeScript type generation
- **Dark mode &amp; appearance switching** — Built-in theme support with cookie-based persistence
- **Persistent sidebar state** — Collapsible sidebar remembers its state across requests
- **Complete authentication** — Login, registration, password reset, email verification, and two-factor authentication via Laravel Fortify
- **Action-oriented architecture** — Business logic lives in dedicated, immutable Action classes
- **Resource-based routing** — Controllers follow CRUD conventions (Cruddy by Design)
- **Preloaded assets** — Critical CSS and JS are automatically preloaded via Link headers

Local Development
-----------------

[](#local-development)

> **Requires [PHP 8.5+](https://php.net/releases/), [Node 22+](https://nodejs.org/), [pnpm](https://pnpm.io/) (used in CI), and a code coverage driver like [Xdebug](https://xdebug.org/docs/install).**
>
> SQLite is used by default for database, session, cache, and queue storage.

### Installation

[](#installation)

```
composer create-project joshdonnell/laravel-starter-kit-vue --prefer-dist example-app
cd example-app
```

### Setup

[](#setup)

```
# Install dependencies, create .env, generate key, run migrations, and build assets
composer setup

# Start the development server (Laravel, queue, logs, and Vite)
composer dev
```

### Optional: Browser Testing

[](#optional-browser-testing)

If you plan to use Pest's browser testing capabilities:

```
pnpm add playwright && pnpm exec playwright install
```

### Verify Installation

[](#verify-installation)

```
composer test
```

You should see 100% test coverage and all quality checks passing.

Available Commands
------------------

[](#available-commands)

### Development

[](#development)

- `composer dev` — Starts Laravel server, queue worker, log monitoring (Pail), and Vite dev server concurrently
- `composer transform-types` — Manually regenerates TypeScript types from PHP Data and Enums

### Code Quality

[](#code-quality)

- `composer lint` — Runs Rector (refactoring), Pint (PHP formatting), and Vite Plus (JS/TS/Vue linting and formatting)
- `composer test:lint` — Dry-run mode for CI/CD pipelines

### Testing

[](#testing)

- `composer test:type-coverage` — Ensures 100% type coverage with Pest
- `composer test:types` — Runs PHPStan (level max) and TypeScript (`tsc --noEmit`) type checking
- `composer test:unit` — Runs Pest tests with 100% code coverage requirement
- `composer test` — Runs the complete suite (type coverage, unit tests, linting, static analysis)

### Maintenance

[](#maintenance)

- `composer update:requirements` — Updates all PHP and NPM dependencies to latest versions

Code Style
----------

[](#code-style)

This project enforces a strict, automated code style across both PHP and JavaScript/TypeScript:

- **PHP:** Laravel Pint for formatting, Rector for automated refactoring and modernisation
- **JS/TS/Vue:** Vite Plus handles linting (oxlint) and formatting (oxfmt) via the `vp` CLI
- **Types:** 100% type coverage enforced on both PHP (PHPStan level max) and TypeScript (strict mode)

Run `composer lint` to auto-fix formatting across the entire codebase.

Code Standards
--------------

[](#code-standards)

- **Actions-Oriented Architecture:** Every operation is encapsulated in a single-action class
- **Cruddy by Design:** Standardised CRUD operations for all controllers, actions, and Inertia pages
- **Immutable-First:** Data structures favour immutability to prevent unexpected mutations
- **Fail-Fast:** Errors are caught at compile-time through strict static analysis, not at runtime
- **Strict Laravel Defaults:** Strict models, auto eager loading, immutable dates via [Essentials](https://github.com/nunomaduro/essentials)
- **AI Guidelines:** Integrated AI guidelines to assist in maintaining code quality and consistency

Testing
-------

[](#testing-1)

The project uses [Pest](https://pestphp.com) with a comprehensive testing suite. The following standards are enforced:

- **100% code coverage** — the test suite will fail if coverage drops below 100%
- **100% type coverage** — every method, property, and parameter must be explicitly typed
- **Static analysis** — PHPStan at level max (maximum strictness)
- **Browser testing** — Pest browser tests powered by Playwright

Run the full suite with:

```
composer test
```

Or run individual checks:

```
composer test:unit            # Unit & feature tests
composer test:types           # PHPStan + TypeScript type checking
composer test:type-coverage   # Type coverage check
composer test:lint            # Linting dry-run
```

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

[](#contributing)

Contributions are welcome from everyone! To get started:

1. Fork the repository
2. Create a feature branch (`git checkout -b feat/my-feature` or `git checkout -b fix/my-fix`)
3. Make your changes
4. Ensure CI is passing (`composer test`)
5. Commit your changes (`git commit -m 'Add my feature'`)
6. Push to your branch (`git push origin feat/my-feature`)
7. Open a Pull Request

Please ensure all tests and quality checks pass before submitting your PR.

License
-------

[](#license)

This project was created by **[Josh Donnell](https://x.com/developedbyjosh)** under the **[MIT license](https://opensource.org/licenses/MIT)**.

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance94

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 83.6% 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 ~18 days

Recently: every ~10 days

Total

10

Last Release

22d ago

PHP version history (2 changes)v1.0.0PHP ^8.4.0

v1.2.0PHP ^8.5.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/0e84904640ee422baef8e0ace057d93fb2ada8a5adce3b5db28247da0647b52d?d=identicon)[joshdonnell](/maintainers/joshdonnell)

---

Top Contributors

[![joshdonnell](https://avatars.githubusercontent.com/u/17536271?v=4)](https://github.com/joshdonnell "joshdonnell (56 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (8 commits)")[![FrameworkJosh](https://avatars.githubusercontent.com/u/227569606?v=4)](https://github.com/FrameworkJosh "FrameworkJosh (3 commits)")

---

Tags

frameworklaravelvueshadcn

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/joshdonnell-laravel-starter-kit-vue/health.svg)

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

###  Alternatives

[nunomaduro/laravel-starter-kit-inertia-react

The skeleton application for the Laravel framework.

2221.2k](/packages/nunomaduro-laravel-starter-kit-inertia-react)[codewithdennis/larament

Larament is a time-saving starter kit to quickly launch Laravel 13.x projects. It includes FilamentPHP 5.x pre-installed and configured, along with additional tools and features to streamline your development workflow.

4041.8k](/packages/codewithdennis-larament)[unopim/unopim

UnoPim Laravel PIM

10.8k2.5k](/packages/unopim-unopim)

PHPackages © 2026

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