Fullstack Vona + Zova Integration
This guide explains the current monorepo-native workflow for integrating Vona and Zova.
Why the workflow looks different in the monorepo
Earlier standalone-repo workflows often described integrating Zova by cloning a separate repository and copying its built output into Vona manually.
That is not the preferred Cabloy workflow.
In the current monorepo:
- Vona and Zova already live in the same source tree
- the root repository already exposes shared scripts for both sides
- edition differences should be handled explicitly rather than through ad hoc path replacement
Core integration model
Cabloy uses a frontend-backend separation architecture:
- Vona provides the backend runtime
- Zova provides the frontend application
- generated or built frontend output is consumed by the backend-side fullstack flow
- type sharing is coordinated through OpenAPI, generated SDKs, and frontend-generated route/component typing
Cabloy Basic
In Cabloy Basic, the root repository already exposes these shared entrypoints:
npm run dev
npm run dev:zova:admin
npm run dev:zova:web
npm run build
npm run build:zovaThe relevant Zova flavors in this repository include:
cabloyBasicAdmincabloyBasicWeb
The frontend-side REST/type build flows include:
cd zova && npm run build:rest:cabloyBasicAdmin
cd zova && npm run build:rest:cabloyBasicWebCabloy Start
Cabloy Start is the private commercial edition. It lives in a licensed sibling repository rather than a subdirectory here, but the same integration idea applies.
Its root script surface uses Start-specific flavors such as:
cabloyStartAdmincabloyStartWeb
Because Start differs in UI layer, module composition, SSR site baselines, and project assets, do not reuse Basic integration examples without first confirming:
- the
__CABLOY_START__marker - the Start repo’s
package.json - the exact Zova flavor names and generated output paths used there
Recommended integration workflow
1. Detect the edition
__CABLOY_BASIC__→ use Basic examples from this repo__CABLOY_START__→ verify the sibling Start repo scripts before using examples
2. Start from root scripts
Use the root package.json as the first workflow surface.
3. Use Zova build and REST generation deliberately
For frontend builds and type generation, inspect the relevant Zova flavor scripts instead of hardcoding copy paths or ad hoc integration steps.
4. Verify both sides together
For meaningful fullstack changes, verify:
- backend dev/build/test flow
- frontend dev/build/type generation flow
- the edition-specific flavor you actually targeted