Cabloy is a Node.js fullstack framework for AI vibe coding.
Use one fullstack framework instead of stitching together separate backend and frontend stacks.
With Vona, Zova, suite-based modules, and CLI-first workflows, Cabloy turns common scaffolding, metadata, refactors, and verification into explicit commands for faster, more accurate AI vibe coding.
Documentation · npm · Web Demo · Admin Demo · GitHub
Cabloy’s fullstack model is built around two core principles:
-
Frontend build output participates directly in backend SSR
- Zova owns the frontend application source
- the generated frontend bundle and SSR-related artifacts are consumed by the Vona-side SSR flow
- backend rendering and frontend hydration stay on one coordinated delivery path
-
Type information flows in both directions
- Backend -> Frontend: Vona emits Swagger/OpenAPI contracts that Zova can use to generate SDKs and related schema-aware helpers
- Frontend -> Backend: Zova generates structural metadata and typing surfaces such as routes, components, and icons that can improve backend-side tooling and type hints
For the complete explanation, see Fullstack Introduction, Vona + Zova Integration, Backend OpenAPI to Frontend SDK, and Frontend Metadata Back to Backend.
Before creating a new Cabloy project, make sure your environment has:
| Name | Version |
|---|---|
| pnpm | >=11.5.2 |
| Node.js | >=24.4.0 |
| Redis | >=7.2.6 |
| SQLite3 | Built-in |
| MySQL | >=8 |
| PostgreSQL | >=16 |
Redis: powers queue, schedule, startup, broadcast, caching, two-layer cache, and redlockSQLite3: if you usebetter-sqlite3, set upnode-gypbefore installing dependencies
Create a new Cabloy project:
npm create cabloyThe generated project already includes CLAUDE.md and the .claude/ workspace assets. This path creates a Cabloy Basic project baseline. Open this project in Claude Code and start coding immediately with project-specific guidance.
pnpm 11 enables the minimumReleaseAge supply-chain protection by default. Newly published packages may be blocked for a short time window before pnpm allows installation.
This matters for npm create cabloy because the command downloads Cabloy from npm and then automatically runs npm run init. If your environment blocks newly published packages during that flow, temporarily set pnpm_config_minimum_release_age=0 for the current shell session and rerun the command.
Windows PowerShell
$env:pnpm_config_minimum_release_age = "0"
npm create cabloyWindows Command Prompt
set pnpm_config_minimum_release_age=0 && npm create cabloymacOS / Linux
pnpm_config_minimum_release_age=0 npm create cabloyIf you already created the project directory and only need to rerun initialization, use the same environment variable with npm run init.
For Cabloy Start, purchase access to the licensed private repository, clone git@github.com:cabloy/cabloy-start.git, and run npm run init. For the complete Start onboarding flow, read the Cabloy Start page.
Then continue with the framework docs:
- Fullstack Quickstart
- Documentation
- Fullstack Introduction
- Backend Introduction
- Frontend Introduction
- Editions Overview
- Choosing Between Cabloy Basic and Cabloy Start
To upgrade an existing Cabloy project:
npm run upgrade- One framework system — build backend and frontend in one fullstack architecture
- Vona + Zova — use aligned backend and frontend frameworks for code sharing, workflow reuse, and cross-stack consistency
- Suite-based modular system — organize capabilities as suites and modules so services, features, metadata, and tooling evolve in composable units
- Multiple delivery modes — deliver SSR, SPA, Web, and Admin applications with shared conventions across the stack
- CLI-first workflows for AI vibe coding — turn common scaffolding, metadata, refactors, and verification into explicit commands for faster, more accurate AI vibe coding
- Monorepo-native development — keep framework source, docs, and tooling aligned in one monorepo workflow
| Package | Version |
|---|---|
| TypeScript | ^5.9.3 |
| Zod | ^4.3.6 |
| Package | Version |
|---|---|
| Koa | ^3.2.0 |
| Knex | ^3.2.9 |
Redis Client (ioredis) |
^5.10.1 |
SQLite Driver (better-sqlite3) |
^12.9.0 |
| Package | Version |
|---|---|
| Vue | ^3.5.32 |
| Vite | ^8.0.14 |
| Quasar | ^2.19.3 |
| TanStack Query | ^5.100.10 |
| TanStack Form | ^1.32.0 |
| TanStack Table | ^8.21.3 |
- Vue
- Vite
- Quasar tooling such as
quasar devandquasar build - TanStack libraries where applicable
Quasar is used here for engineering tooling rather than as the edition UI component library.
- Cabloy Basic: DaisyUI + Tailwind CSS
- Cabloy Start: Vuetify
Contributions to the Cabloy framework, docs, and tooling are welcome.
Use the root package.json as the shared workflow entrypoint:
npm run init
npm run dev
npm run tsc
npm run test
npm run buildFor more details, see:
- Editions Overview
- Choosing Between Cabloy Basic and Cabloy Start
- Repo Scripts
- Package Map
- AI Development Introduction
Contribution guidelines:
- prefer CLI-backed workflows with
npm run vonaandnpm run zova - put user-facing and agent-facing guidance in docs.cabloy.com
- put maintainer rationale, architecture notes, and ADRs in .docs-internal/
- verify framework changes with the narrowest meaningful checks first, then shared root scripts when broader confidence is needed
To report bugs or propose changes, use GitHub Issues or open a pull request in github.com/cabloy/cabloy.