This is a pnpm monorepo with 4 independent workspaces:
landing/- Qwik landing pagedocs/typescript/- Docusaurus (TypeScript helpers)docs/devcontainer/- Docusaurus (DevContainer features)docs/github-action/- Docusaurus (GitHub Actions)
pnpm install --workspace# Install all dependencies
pnpm install
# Show all packages
pnpm recursive list
# Clean all workspaces
pnpm clean# Build specific package
pnpm --filter landing build
pnpm --filter ./docs/typescript build
# Run script in workspace
pnpm --filter landing dev# Generate docs from all repos
pnpm sync-from-repos
# Merge all builds
pnpm merge-builds
# Full build pipeline
pnpm build-
Start dev servers in parallel (different terminals):
# Terminal 1 pnpm dev:landing # Terminal 2 pnpm dev:docs:typescript # Terminal 3 pnpm dev:docs:devcontainer # Terminal 4 pnpm dev:docs:action
-
Each package has its own
package.jsonwith independent dependencies -
Shared dependencies (like
pnpm, Node.js) managed at root level -
Scripts in root
package.jsonorchestrate the workflow
✅ Single repo for all website components ✅ Unified CI/CD ✅ Shared scripts and automation ✅ Easier maintenance ✅ Better discoverability
helpers4.github.io/
├── pnpm-workspace.yaml ← Defines workspaces
├── package.json ← Root, shared scripts
├── landing/ ← Workspace 1
│ ├── package.json
│ ├── src/
│ └── public/
├── docs/
│ ├── typescript/ ← Workspace 2
│ │ ├── package.json
│ │ ├── docs/
│ │ └── docusaurus.config.ts
│ ├── devcontainer/ ← Workspace 3
│ └── github-action/ ← Workspace 4
├── scripts/
│ ├── merge-builds.js
│ ├── generate-*.js
│ └── sync-from-repos.js
└── .github/workflows/
├── deploy.yml
├── typescript-release.yml
├── devcontainer-release.yml
└── action-release.yml
- SETUP.md - Local development guide
- DEPLOYMENT.md - Deployment instructions
- package.json - Root scripts and dependencies
- pnpm-workspace.yaml - Workspace definitions