Appearance
Vercel how-to
Two Vercel projects from one monorepo:
| Project | What | How you ship |
|---|---|---|
| Next brochure app | Production marketing site | Git and/or pnpm run deploy |
| Public docs | VitePress engineering notes | Separate project, Git only |
Install
CLI
bash
pnpm add -D vercel
pnpm exec vercel login
pnpm exec vercel link # one project link per folder — do not mix app + docsDashboard
- Import the GitHub repo at vercel.com.
- Framework: Next.js for the app (auto-detected).
- pnpm install when
pnpm-lock.yamlis present.
Commands
bash
pnpm run build
pnpm test # optional
pnpm run deploy # vercel --prodAgent sessions should require explicit human Allow before production deploy.
Implementation examples
Brochure app
| Setting | Value |
|---|---|
| Framework | Next.js |
| Install | pnpm from lockfile |
| Build | pnpm run build |
Public docs (second project)
| Setting | Value |
|---|---|
| Framework | Other |
| Build | pnpm run docs:public:build |
| Output | docs-public/.vitepress/dist |
bash
pnpm run docs:public:build
pnpm run docs:public:preview # verify locally before push
pnpm exec vercel deploy --prod --yes --project=docs-publicDo not use pnpm run deploy for docs — that targets the brochure Next project. Root vercel.json sets cleanUrls for VitePress paths without .html.
Env vars
bash
pnpm exec vercel env add MY_SECRET productionDNS for a custom domain: Publishing.
CI note
A typical PR gate runs pnpm run check:unit only — add Playwright / deploy jobs separately if needed.