Repository structure
backend owns Laravel/Filament and its infrastructure. app/web owns Nuxt browser
routes and adapters. app/mobile owns NativeScript views, navigation, and native
adapters. Both consume @firehall/client-core from app/shared through workspace
dependencies. app/fixtures is selected only by explicit preview adapters.
ui owns browser presentation built on Reka and Font Awesome Free. It cannot
fetch data or import app stores. ui/native renders native views without Reka,
Nuxt, or DOM imports. ui/tokens contains generated data with no UI runtime.
Filament uses its own Blade/Livewire layer and generated tokens, not Vue components.
docs is an independent static Nuxt build. bin is the command implementation
shared by contributors and CI. .firehall is ignored scratch space, not published
product documentation.
Use workspace:*, never relative imports into another package’s source tree.
bin/check-boundaries enforces key restrictions and audits the live browser
bundle for fixture/native/server leaks. pnpm’s hoisted linker is intentional:
NativeScript’s CLI and build plugins require a compatible physical dependency
layout. There remains one root pnpm lockfile. Soketi’s isolated npm lockfile is
outside the workspace.