Skip to content

Repository files navigation

Vaah Docs

Made with Nuxt UI Pro Nuxt Content

Documentation site for the Vaah product family — VaahCMS, VaahCLI, VaahFlutter, VaahStore, VaahNuxt and VaahShare — maintained by WebReinvent.

Live site: https://vaah.dev

Stack

  • 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 cards
  • apexcharts / flowbite — charts and UI helpers

Project Structure

.
├── 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

Setup

# npm
npm install

# pnpm
pnpm install

# yarn
yarn install

# bun
bun install

Development

Start the dev server on http://localhost:3000:

npm run dev

Other 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 generation

VaahStore API Bundling

The 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/cli

Bundle the spec:

npm run vaahstore:api

This runs:

npx @redocly/cli bundle public/vaahstore-api/vaahstore.yaml --output public/vaahstore-apis.yaml

The 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 }).

Routing rules

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.

Nuxt Studio

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',
  ],
})

Deployment

Build the application for production:

npm run build

Locally preview the production build:

npm run preview

See the Nuxt deployment documentation for guidance on hosting providers.

Contributing

Open issues and pull requests on GitHub: webreinvent/vaah-docs.

About

VaahCMS Documentation

Topics

Resources

Stars

10 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages