Overview

Project Structure

Folder layout: vitepress-template, sites, and scripts

Overview

coretech-sites/
├── vitepress-template/    # Main VitePress app
├── sites/                 # Site definitions (TypeScript)
└── src/                   # Payload CMS backend (optional)

vitepress-template/

  • .vitepress/ — Config, theme, layouts, components, generated data
  • .vitepress/theme/components/blocks/ — Block components (HeroBlock, RichTextBlock, etc.)
  • .vitepress/theme/layouts/ — main, docs, taxonomy layouts
  • pages/ — VitePress pages (index.md, [slug].md)
  • scripts/ — generate-content, payload-api, eventSplit, etc.
  • .env — SITE_NAME or SITE_SLUG, PAYLOAD_*, R2_*

sites/

Each site is a folder with:

  • index.ts — Exports { settings, pages }
  • settings.ts — SiteSettingsData (topNav, footer, logo, etc.)
  • pages/ — Page files. Use pages/docs/ and pages/blocks/ for organization.

Example: sites/showcase/ is the default docs + block showcase site.

scripts/

Inside vitepress-template/scripts/:

  • generate-content.ts — processBlocks, writeSiteSettings, types
  • payload-api.ts — getPages() from Payload CMS
  • site-settings-api.ts — getSiteSettings() from Payload
  • eventSplit.ts — Split upcomingEvents into upcoming/past
  • configure-site.ts / configure-local-site.ts — Wrangler config for deploy

Next: Environment

Menu
In this section