Development
Use PHP 8.3 or newer and a Node version supported by package.json. Install both dependency sets before running the checks:
bash
composer install
npm installPHP checks
bash
composer test
composer analyse
vendor/bin/pint --testThe Pest suite uses Orchestra Testbench and SQLite by default. CI also runs the supported Laravel and Inertia combinations plus MySQL and PostgreSQL jobs.
Vue checks
bash
npm run format:check
npm run types:check
npm test
npm run buildVue tests set isolate: false, so each worker reuses its happy-dom environment across test files.
Documentation
Start the local documentation server with:
bash
npm run docs:devBuild the same static site used by CI and GitHub Pages with:
bash
npm run docs:buildVitePress writes generated files below docs/.vitepress/dist; do not commit that directory.
URL contract fixture
PHP and TypeScript share URL-state fixtures. Regenerate the fixture from the PHP suite, then verify it in Vitest:
bash
INERTIA_TABLE_URL_CONTRACT_OUTPUT=build/contracts/urls.json composer test -- tests/UrlContractTest.php
INERTIA_TABLE_URL_CONTRACT_OUTPUT=build/contracts/urls.json npm test -- tests-js/contractUrl.test.tsKeep the generated contract out of source control.