Skip to content

Docs site

This documentation is a VitePress site rooted at docs/. The source is the same Markdown the repo already used for architecture, the PRD, and the test strategy - VitePress just adds navigation, search, and theming on top.

Local preview

bash
npm run docs:dev      # dev server with hot reload at http://localhost:5173
npm run docs:build    # build static site into docs/.vitepress/dist
npm run docs:preview  # serve the built site locally

Structure

docs/
├── .vitepress/
│   └── config.ts        Site config: nav, sidebar, theme
├── index.md             Home page
├── guide/               Introduction, concepts, project structure
├── development/         Setup, Supabase, running, testing, conventions
├── deployment/          This section
├── architecture/        System design, data model, ADRs
├── prd/                 Product requirements
└── test-plans/          Test strategy

Excluded from the app toolchain

docs/.vitepress is excluded from tsconfig.json and eslint.config.js, so the VitePress config (which imports Vite/Vue) never interferes with the app's typecheck or lint.

Deploying to GitHub Pages

A workflow at .github/workflows/docs.yml builds and deploys the site on every push to main that touches docs/.

The site is served under the repo subpath, so base is set to /wespend/ in config.ts (overridable via the DOCS_BASE env var for other hosts).

One-time setup

In Settings -> Pages, set the source to GitHub Actions. After the first successful run, the docs are live at:

https://vineethkrishnan.github.io/wespend/

Deploying elsewhere

The build output in docs/.vitepress/dist is plain static HTML, so it drops onto any static host (Netlify, Vercel, Cloudflare Pages, S3). For a root-domain host, build with DOCS_BASE=/:

bash
DOCS_BASE=/ npm run docs:build

Spend together, settle simply.