Pages, not page loads
A screen is a JavaScript component the router swaps in. The app never navigates by reloading, so state, sockets and the sidebar survive every move.
VSA Monolith is the Laravel and vanilla-JavaScript application framework behind the Vectorasoft consoles. Its command line installs the whole toolchain, scaffolds pages that already know their routes, permissions and translations, and refuses to commit code that would break at runtime.
Installs PHP 8.3, Composer, Node, the extensions and the vsa command. Per-user on Windows — no administrator rights.
One command on a machine with nothing on it. Safe to run again — it updates what is already there instead of installing it twice.
curl -fsSL https://vsa.vectorasoft.com/vsa-installer.sh | bash
& ([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing https://vsa.vectorasoft.com/vsa-installer.ps1).Content))
Prefer not to use a terminal? Download the installer and double-click it — same thing. While the VSA repositories are private it asks once for a GitHub token and remembers it; how to make one.
Every piece exists because something shipped broken once. The rules in vsa check are that list, written down.
A screen is a JavaScript component the router swaps in. The app never navigates by reloading, so state, sockets and the sidebar survive every move.
vsa check fails the build when a guard names a numeric permission id instead of its code — the defect that once left a whole screen unguarded.
Queries go through DBX and never spell a vendor SQL function, so the same code runs on MySQL and PostgreSQL without a rewrite.
vsa make:page writes the component, the blade, the app-file entry, the menu place, the translation keys and — for a list page — the controller, model and API route.
The subscriber is named in the URL — /hr-acme or acme.example.com/hr — so the login knows which company before the password is checked. An unknown or unentitled code is a 404, never a quiet fall-back.
A report is two declarations and one query class. One Report Center lists them all, a signed ticket opens one, and View, Print, Excel and CSV render the same rows.
Find every key the code uses, sync the ones a locale lacks, export a CSV for a translator, import only the cells they changed.
Sign-in, roles, subscriptions and the permission catalog live in XAuth. vsa xauth:sync pushes what the code declares and tells you what drifted.
Run vsa anywhere inside a project — it finds the project by the nearest vsa.json.
vsa new acme-hr --name="Acme HR" --app=hr # a project from the template, set up and committed
vsa serve # PHP server, live reload and a check on every save
vsa make:page hr EmployeesComponent --type=list
vsa i18n:sync # every key the code uses exists in every locale
vsa check # the rules below; the pre-commit hook runs this
vsa build # hashed, minified chunks in public/dist
vsa doctor # is anything still missing?
Thirty-odd commands, grouped: see all of them.
It brings up git, installs the toolchain, clones the CLI, and can finish by creating a project or cloning one you already have.