Documentation site for the Vaah product family — VaahCMS, VaahCLI, VaahFlutter, VaahStore, VaahNuxt and VaahShare — maintained by WebReinvent.
Live site: https://vaah.dev
- Nuxt 3 (SSR + hybrid rendering via
routeRules) - Nuxt UI Pro — extended in
nuxt.config.ts - @nuxt/content — Markdown/YAML docs in
content/ - @scalar/api-reference — API reference renderer for VaahStore OpenAPI
- Pinia — client state
nuxt-og-image— social cardsapexcharts/flowbite— charts and UI helpers
.
├── content/ Markdown/YAML sources rendered by @nuxt/content
│ ├── 1.getting-started
│ ├── 2.vaahcms-2x
│ ├── 3.vaahcms-1x
│ ├── 4.guide
│ ├── 5.vaahcli
│ ├── 6.laravel
│ ├── 7.vaahflutter
│ ├── 8.vaahstore
│ ├── 9.testing
│ ├── 10.vaahshare
│ └── 11.vaahnuxt
├── pages/ File-based routes (e.g. pages/vaahstore/api.vue)
├── public/ Static assets, including the OpenAPI sources/specs
│ ├── vaahstore-api/ VaahStore OpenAPI fragments (one folder per module)
│ └── vaahstore-apis.yaml Bundled single-file output (generated)
├── json/
│ └── routeRules.json Per-route rendering rules consumed by nuxt.config.ts
├── nuxt.config.ts
└── package.json
# npm
npm install
# pnpm
pnpm install
# yarn
yarn install
# bun
bun installStart the dev server on http://localhost:3000:
npm run devOther useful scripts:
npm run lint # ESLint
npm run typecheck # vue-tsc
npm run build # Production build
npm run preview # Preview the production build
npm run generate # Static site generationThe VaahStore docs page at /vaahstore/api renders the OpenAPI spec via @scalar/api-reference. The spec is bundled from the multi-file source in public/vaahstore-api/ into a single file at public/vaahstore-apis.yaml.
Install the bundler (already declared in devDependencies of a typical setup, or install directly):
npm install --save-dev @redocly/cliBundle the spec:
npm run vaahstore:apiThis runs:
npx @redocly/cli bundle public/vaahstore-api/vaahstore.yaml --output public/vaahstore-apis.yamlThe Scalar component on pages/vaahstore/api.vue loads the bundled file at runtime. The route is rendered client-only via a routeRules entry in json/routeRules.json ({ "ssr": false }).
Per-route behavior (prerender, SSR, redirects) lives in json/routeRules.json and is loaded into nuxt.config.ts:
const routeRules = require('./json/routeRules.json')
export default defineNuxtConfig({
// ...
routeRules,
})To add a new redirect or change SSR/prerender behavior for a path, append an entry to that JSON file — do not hard-code route rules in individual pages.
Content can be edited from the browser via Nuxt Studio. The @nuxthq/studio module is already in devDependencies; add it to modules in nuxt.config.ts if you want to enable it:
export default defineNuxtConfig({
modules: [
// ...
'@nuxthq/studio',
],
})Build the application for production:
npm run buildLocally preview the production build:
npm run previewSee the Nuxt deployment documentation for guidance on hosting providers.
Open issues and pull requests on GitHub: webreinvent/vaah-docs.