joshdonnell/laravel-starter-kit-vue
最新稳定版本:v1.2.0
Composer 安装命令:
composer create-project 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
README 文档
README
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, 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.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 & 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
- 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/Dataorapp/Enumsautomatically triggers TypeScript type generation - Dark mode & 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
Requires PHP 8.5+, Node 22+, pnpm (used in CI), and a code coverage driver like Xdebug.
SQLite is used by default for database, session, cache, and queue storage.
Installation
composer create-project joshdonnell/laravel-starter-kit-vue --prefer-dist example-app
cd example-app
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
If you plan to use Pest's browser testing capabilities:
pnpm add playwright && pnpm exec 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 (Pail), and Vite dev server concurrentlycomposer transform-types— Manually regenerates TypeScript types from PHP Data and Enums
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
composer test:type-coverage— Ensures 100% type coverage with Pestcomposer test:types— Runs PHPStan (level max) and TypeScript (tsc --noEmit) type checkingcomposer test:unit— Runs Pest tests with 100% code coverage requirementcomposer 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: Vite Plus handles linting (oxlint) and formatting (oxfmt) via the
vpCLI - 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
- 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 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
Contributions are welcome from everyone! To get started:
- Fork the repository
- Create a feature branch (
git checkout -b feat/my-featureorgit checkout -b fix/my-fix) - Make your changes
- Ensure CI is passing (
composer test) - Commit your changes (
git commit -m 'Add my feature') - Push to your branch (
git push origin feat/my-feature) - 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.
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-02-12