Local Development (Monorepo)
Want to hack on Laravix itself — the core, the default theme or the first-party plugins? Then you need the development monorepo instead of the distribution. This article explains the repository layout and gets it running with Laravel Sail.
Note: If you just want to build a website with Laravix, use the distribution instead — see Installation.
Repository layout
The monorepo is a full Laravel application that installs the packages from local paths (symlinked by Composer):
| Path | What it is |
|---|---|
packages/laravix/cms |
The distributable core — models, Filament resources, blocks, API, commands. Split automatically to the laravix/cms package on every release tag. |
packages/laravix/docs-plugin |
First-party plugin: documentation content type and pages (powers laravix.com/docs). |
packages/laravix/changelog-plugin |
First-party plugin: changelog (powers laravix.com/changelog). |
themes/default |
The default theme as published to new installations. |
app/, config/, routes/ |
The host application — thin glue around the packages. |
Prerequisites
- Docker (the monorepo runs in Laravel Sail containers: PHP, MySQL, Meilisearch, Mailpit)
- Composer and PHP 8.4 on the host for the initial
composer install - Node.js for building assets
Setup
git clone https://github.com/MartinKoudela/laravix-cms.git
cd laravix-cms
composer install
cp .env.example .env
vendor/bin/sail up -d
vendor/bin/sail artisan key:generate
vendor/bin/sail artisan migrate --seed
vendor/bin/sail npm install
vendor/bin/sail npm run build
Open http://localhost/admin and log in with the seeded account:
- email:
[email protected] - password:
example_
Tip: Run every PHP, Artisan, Composer and Node command through
vendor/bin/sailso it executes inside the containers. An alias helps:alias sail='vendor/bin/sail'.
Everyday commands
vendor/bin/sail artisan test --compact # run the Pest test suite
vendor/bin/sail bin pint --dirty # format changed PHP files
vendor/bin/sail npm run dev # Vite dev server with hot reload
vendor/bin/sail artisan pail # tail application logs
The stack: Laravel 13, Filament 5, Livewire 4, Tailwind CSS 4, GrapesJS, Meilisearch, Pest 4 on PHP 8.4.
Editing the core
Because packages/*/* are installed as symlinked path repositories, changes to files under packages/laravix/cms apply immediately — no composer update needed. The same goes for the plugins.
Frontend changes (admin theme, builder JavaScript) need a rebuild: vendor/bin/sail npm run build, or keep npm run dev running.
Troubleshooting
"Unable to locate file in Vite manifest". Assets aren't built yet — run vendor/bin/sail npm run build.
Login fails with correct credentials. The user has no site and isn't a super admin. Create a proper account with vendor/bin/sail artisan laravix:user and answer yes to the super admin question.
Port 80 is taken. Set APP_PORT in .env before sail up.
Related articles
- Installation — the distribution for building sites
- Plugin Development