A monorepo containing packages for building UIs on top of the SavvyCal Appointments API.
| Package | Description |
|---|---|
| @savvycal/appointments-core | TypeScript/JavaScript client for the SavvyCal Appointments API |
| @savvycal/appointments-react-query | React Query hooks for data fetching and mutations |
| @savvycal/appointments-utils | Timezone-aware date/time utilities |
This project uses pnpm for package management.
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Run development mode
pnpm dev
# Run tests
pnpm test
# Type check
pnpm typecheckThis project uses Changesets for version management and publishing.
When you make changes that should be released, run:
pnpm changesetThis will prompt you to:
- Select the packages that have changed
- Choose the bump type (major, minor, patch)
- Write a summary of the changes
Commit the generated changeset file along with your changes.
Releases are automated via GitHub Actions using npm trusted publishing with OIDC (no npm tokens required):
- When PRs with changesets are merged to
main, the action creates/updates a "Version Packages" PR - This PR bumps versions and updates changelogs based on the changesets
- Merging the "Version Packages" PR triggers the publish to npm
Each package must be configured on npmjs.com to trust this repository's workflow:
- Go to the package settings on npmjs.com (e.g., https://www.npmjs.com/package/@savvycal/appointments-core/access)
- Under "Publishing access", add a trusted publisher with:
- Repository owner:
svycal - Repository name:
appointments - Workflow filename:
release.yml - Environment: (leave blank)
- Repository owner:
pnpm version # Bump versions and update changelogs
pnpm release # Build and publish to npmMIT