Contributing
This page documents how this repo is built, tested, deployed, and released.
Tech Stack
- Monorepo:
pnpmworkspace - Language/tooling: TypeScript, Node.js
- CSS package build:
lightningcss - React package build:
tsup - Demo app: React + Vite (
examples/demo) - Docs site: Docusaurus (
apps/docs) - CI/CD: GitHub Actions
- Versioning/releases: Changesets + npm publish
Repository Layout
packages/ambient-css:@ambientcss/csspackages/ambient-components:@ambientcss/componentsexamples/demo: demo applicationapps/docs: documentation sitescripts: workspace build/typecheck helpers.github/workflows: deployment and release workflows
Local Setup
pnpm install
Common Commands
- Build all workspaces:
pnpm build
- Typecheck publishable/workspace apps:
pnpm typecheck
- Run docs locally:
pnpm docs:dev
- Build docs:
pnpm docs:build
- Run full release gate:
pnpm release:check
Deployment
Docs deployment (GitHub Pages)
- Workflow:
.github/workflows/deploy.yml - Trigger: push to
master - Steps:
- Install dependencies
- Run launch gate (
pnpm build && pnpm typecheck && pnpm docs:build) - Deploy
apps/docs/buildto GitHub Pages
Versioning and Releases
This repo uses Changesets for semantic versioning.
1. Add a changeset in your feature/fix PR
pnpm changeset
Choose:
- package(s) changed
- bump type (
patch,minor,major) - summary
Commit the generated file in .changeset/.
2. Merge your PR to master
After merge, Changesets workflow creates/updates a version PR.
- Workflow:
.github/workflows/changesets.yml - Version PR title:
chore: version packages
3. Merge the version PR
On merge, packages are published to npm by the same workflow.
Release commands (local fallback)
- Apply pending changesets to versions/changelogs:
pnpm version-packages
- Publish with Changesets locally:
pnpm release:changeset:publish
npm Publishing and Auth
CI publishing uses npm Trusted Publishing (OIDC) — no tokens or secrets needed. This requires npm >= 11.5.1 (installed in CI via npm install -g npm@latest).
Trusted publishing is configured on npmjs.com for both packages:
- Repository:
kikkupico/ambientcss - Workflow:
.github/workflows/changesets.yml
Manual publish workflow also exists:
.github/workflows/publish-npm.yml(workflow_dispatch, supports dry-run)
Contributor Checklist
Before opening/merging a PR:
- Run
pnpm release:check - Add/commit a changeset for user-facing changes
- Ensure docs/examples are updated when behavior changes