psyao / kami-starter
A Laravel application wired for Psyao Kami, the Laravel and Filament CMS.
Requires
- php: ^8.5
- filament/filament: ^5.10
- laravel/framework: ^13.32
- laravel/tinker: ^3.0
- psyao/kami: ^0.2
Requires (Dev)
- driftingly/rector-laravel: ^2.7
- evilmartians/lefthook: ^2.2
- fakerphp/faker: ^1.23
- larastan/larastan: ^3.13
- laravel-lang/common: ^6.8
- laravel/boost: ^2.10
- laravel/pail: ^1.2.5
- laravel/pao: ^1.0.6
- laravel/pint: ^1.32
- mockery/mockery: ^1.6
- nunomaduro/collision: ^8.6
- pestphp/pest: ^5.3
- pestphp/pest-plugin-laravel: ^5.0
- phpstan/phpstan-deprecation-rules: ^2.0
- rector/rector: ^2.8
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-30 12:27:41 UTC
README
A Laravel application wired for Psyao Kami, the Laravel and Filament CMS at home on shared hosting. Once created, the site owns this code: nothing is ever synced back from here, and everything existing sites must receive ships in the psyao/kami package.
Create a site
Requirements: PHP 8.5 with the extensions Kami lists, Composer, and, on the developer's machine only, Node for the front-end build and gitleaks for the commit hook (brew install gitleaks).
laravel new site --using=psyao/kami-starter
cd site
php artisan kami:install
kami:install asks for the first administrator, who signs in at /admin; so does composer setup, which also builds the front. Without a terminal, pass the administrator's details as Kami's installation guide shows. Create a Page in the admin and publish it: it answers at its own address, /about in French and /en/about in English.
To put the site online and deploy it again, follow Kami's deployment guide. Accept Laravel Boost when the installer offers it, or run php artisan boost:install later: either gives a coding agent Laravel's, Filament's and Kami's guidelines and skills.
What it wires
routes/web.php:Kami::routes(), the fallback route that serves every Entry at its Path, after the site's own routes.bootstrap/app.php: Kami's front security headers and CSP on thewebgroup too.app/Providers/Filament/AdminPanelProvider.php: the panel, withKamiPlugin, strict authorization, Kami's local avatar provider and Kami's admin security headers.app/Models/User.php:KamiUserwithHasKamiRoles; only a User holding a Kami Role gets into the admin.config/kami.php: the examplePagetype (app/Content/Page.php), two Locales (fr, the default, anden) and theadministratorRole.database/migrations/*_create_kami_type_page_table.phpis the Page's table, written bykami:make:migration.lang/{en,fr}/kami-types.php: the admin's labels for the Page;lang/fr.json: the layout's strings in French.resources/views/components/layouts/site.blade.php: a minimal accessible layout (lang, skip link, landmarks), built by Vite and Tailwind, with no JavaScript, no web font and nothing inline.resources/views/kami/page.blade.phprenders a Page in it.public/.htaccess: no trailing-slash redirect before Laravel, so a former URL costs one 301.resources/views/errors/: one layout for every error page, without Vite assets; its styles are inpublic/errors.css..github/workflows/tests.yml: Pint, Larastan, Rector and the tests on every pull request, and the Vite + Tailwind build as an artifact, so the server never runs Node.boost.json: Kami's and Filament's guidelines and skills, preselected forboost:install, which the installer runs without prompting for them.lefthook.yml,pint.json,rector.php,phpstan.neon.dist: Kami's rules and level, from the package. Hooks install withcomposer installonce the site is a Git repository.tests/ArchTest.php: Filament stays inapp/Filament,app/Providers/Filamentand theUsermodel (itsFilamentUsercontract), so a Filament major touches only them.
composer analyse runs Larastan, composer test the tests.