Developer Local Development (Monorepo)

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:

Tip: Run every PHP, Artisan, Composer and Node command through vendor/bin/sail so 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.

Laravix Documentation · 13.07.2026
Star on GitHub