VSA Monolith Framework

Documentation

VSA Monolith is a Laravel back end with a vanilla-JavaScript front end, and a command line that treats the project structure as something it can read, check and generate.

What a VSA app is

A VSA app is one Laravel application serving one or more apps — self-contained front ends, each with its own shell, script bundle and menu. Inside an app, every screen is a page component: a JavaScript object the router instantiates and swaps into the layout.

The rule that shapes everything else is that the app never navigates by reloading the page. Moving between screens is a router call, not a request, so the sidebar, the session, open sockets and in-memory state all survive. A full page load happens in exactly two places: signing in, and opening a guide or a report, which are blades in a new tab.

One deployment serves many subscribers: the company is named in the URL, inside the app’s own route segment, because the login screen has to know which company before the password is checked. Routes & tenancy is that contract.

There is one sidebar for the whole app, owned by the layout. A page renders into the outlet and never injects into the sidebar — a view-only report keeps the app layout but drops the sidebar entirely.

The pieces

PieceWhat it does
VSELThe component library — lists, dialogs, pickers, menus, money and date inputs — served version-pinned from the CDN rather than bundled per project
VSPageRouterMaps a route to a page component, instantiates it, and swaps it into the layout outlet
VSAppThe application object: the layout contract, the one sidebar, the menus, the current identity
DBXThe cross-database layer. Queries never spell a vendor SQL function, so the same code runs on MySQL and PostgreSQL
Report CenterOne screen for every report. A report is two declarations in the app file and one handler class — never a screen of its own
XAuthThe identity platform: sign-in, roles, permissions, projects, subscriptions. A VSA app declares its catalog and pushes it
vsaThe command line. It reads the PHP config files as data and never boots Laravel

Where to go next

  • Getting started — install, create a project, add a page, run it
  • Commands — every vsa command, grouped
  • Configuration — vsa.json and the XAuth credential in .env
  • Routes & tenancy — every route a project registers, and how one deployment serves many subscribers
  • Reports — the Report Center: the declarations, the ticket, and who owns a live report
  • Rules & checks — what vsa check enforces, and the defect behind each rule
  • Translations — the key convention and the translator round trip
  • XAuth mirror — exact local copies of the console tables: the contract, verify, drift and multi-database sync

Not installed yet? The installer brings up the whole toolchain in one command — download it for macOS or Windows.