Skip to content

joshdonnell/laravel-starter-kit-vue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo for Laravel Starter Kit

Build Status Latest Stable Version License

An end-to-end type-safe Laravel 13 starter kit with auto-generated TypeScript types, Vue, and shadcn-vue for fast front-end prototyping. Built on top of Nuno Maduro's Laravel Starter Kit (Maintained by me), 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

Backend: PHP 8.4+, Laravel 13, Inertia.js v3, Spatie Laravel Data

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

Type Generation: Laravel Wayfinder (auto-generated route & action types), Spatie Laravel Data (auto-generated DTO types)

DX Tooling: unplugin-auto-import (Nuxt-style auto imports for Vue APIs and composables)

Code Quality: PHPStan (level 9), Rector, Pint, Vite Plus, oxlint, oxfmt, Pest v5 (100% coverage)

Local Development

Requires PHP 8.4+, npm or pnpm, and a code coverage driver like Xdebug.

Installation

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

Setup

# Install dependencies and configure the project
composer setup

# Start the development server (Laravel, queue, logs, and vite plus)
composer dev

Optional: Browser Testing

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

# npm
npm install playwright && npx playwright install

# pnpm
pnpm add playwright && pnpx playwright install

Verify Installation

composer test

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

Available Commands

Development

  • composer dev — Starts Laravel server, queue worker, log monitoring, and Vite dev server concurrently

Code Quality

  • composer lint — Runs Rector (refactoring), Pint (PHP formatting), and oxfmt (JS/TS formatting)
  • composer test:lint — Dry-run mode for CI/CD pipelines

Testing

  • composer test:type-coverage — Ensures 100% type coverage with Pest
  • composer test:types — Runs PHPStan at level 9 (maximum strictness)
  • 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

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

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: oxlint for linting, oxfmt for formatting
  • Types: 100% type coverage enforced on both PHP (PHPStan level 9) and TypeScript (strict mode)

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

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
  • AI Guidelines: Integrated AI guidelines to assist in maintaining code quality and consistency

Testing

The project uses Pest with a full testing suite of 150+ tests. 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 9 (maximum strictness)

Run the full suite with:

composer test

Or run individual checks:

composer test:unit            # Unit & feature tests
composer test:types           # PHPStan static analysis
composer test:type-coverage   # Type coverage check
composer test:lint            # Linting dry-run

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

This project was created by Josh Donnell under the MIT license.

About

This is a fully e2e typesafe starter kit with auto TS type generation and shad cn for fast front-end prototyping

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors