The current monorepo setup is based on:
- Yarn workspaces, used for managing multiple packages from a single repository.
- Turborepo, used for task running and task output caching.
- GitHub Actions, used for quality checks and automated release orchestration.
Packages are inside the packages directory. Refer to each package's README for specific instructions on installation and usage.
react
- Knock React SDK with hooks and components for building web notification experiencesreact-native
- Knock React Native SDK with hooks and components for building mobile notification experiencesreact-core
- Internal utilities shared by the React and React Native SDKseslint-config
,typescript-config
- Shared configuration for our packages and examples
nextjs-example
- A sample Next.js app showing how to use the Knock in-app feed
- Have a version of Yarn and Node installed that is compatible with the versions defined in
.tool-versions
. - Install dependencies. Always run
yarn
from the root of the monorepo, so that dependencies are installed correctly for all packages:
# Install dependencies
yarn
# Add a dependency
yarn workspace <workspace> add <package>
- Build all packages or run them locally:
# Build all packages
yarn build
# or run them in development
yarn dev