Appearance
Deploying
Every site in the monorepo (these docs and each app in apps/) is its own Cloudflare Pages project on the same GitHub repository. Production builds from main; every other branch gets a preview address.
Docs: qalim-design-system | Diary: qalim-diary | |
|---|---|---|
| Address | qalim-design-system.pages.dev | qalim-diary.pages.dev |
| Root directory | (empty: the repository root) | (empty: the repository root) |
| Framework preset | None | None |
| Build command | npm install && npm run build:lib && npm run docs:build | npm install && npm run build:lib && npm run build --workspace=apps/diary |
| Build output directory | docs/.vitepress/dist | apps/diary/dist |
| Environment variable | SKIP_DEPENDENCY_INSTALL = 1 | SKIP_DEPENDENCY_INSTALL = 1 |
| Node | from .nvmrc (22.23.3) | from .nvmrc (22.23.3) |
Why these settings:
- The repository root is the root directory, so npm workspaces link
@my-ds/componentsinto the apps. npm install, notnpm ci:npm cineeds a lockfile, and lockfiles are not tracked.SKIP_DEPENDENCY_INSTALL=1stops Cloudflare's automatic install (the rootpackage.jsondeclares pnpm); the build command installs with npm instead..nvmrcsets the same Node everywhere; Cloudflare's default (22.16) is too old for Astro's dependencies.
Create a project
- In the Cloudflare dashboard, open Workers & Pages → Create → Pages → Connect to Git, and pick the repository.
- Enter the project name, production branch
main, and the settings above. - Save and Deploy. The first build takes a few minutes.
Check a deployment
The same browser tests run against the live site:
sh
DIARY_URL=https://qalim-diary.pages.dev npx playwright test --project=diaryDeploying happens on push to main, so it follows the versioning standard: one version bump per push, with its changelog section.