Contributing to DayPicker
You are welcome to join the DayPicker contributors and help us build the best date picker for React.
Ways to Contribute
There are many ways to contribute to the development of DayPicker:
- Improve our build tools and GitHub actions
- Open PRs with new features, bug fixes, and improved rendering performance
- Align the source code with the latest TypeScript/React practices
- Help with unit and integration tests
- Proofread our website and the code documentation in the source files
- Make the website more stylish
- Help maintain the repository on GitHub and triage issues and PRs
- Answer support questions
- Sponsor the project
Send a message on our discussions page to introduce yourself!
Working With the Source Code
DayPicker is built using the following tools and libraries:
- pnpm - for package management
- TypeScript with React
- Docusaurus - for the documentation websi
- Vite - for the examples app
- Jest - for unit tests
To contribute to DayPicker, start by cloning the repository:
git clone https://github.com/gpbl/react-day-picker.git
cd react-day-picker
pnpm install
DayPicker Workspace
If your are using Visual Studio code open the react-day-picker.code-workspace to set up the development environment. This workspace includes:
- Suggested extensions for the project
- TypeScript compiler running in watch mode for the ESM export
- Docusaurus website running at http://localhost:2001, with documentation and API docs
- Vite.js examples app served at http://localhost:5173
- Use this app to run isolated test cases and examples, exported by
/examples/index.ts
- Use this app to run isolated test cases and examples, exported by
Test Driven Development
DayPicker development is test-driven. Change code and run the tests using pnpm run test-watch
or pnpm run test
. The Jest plugin in the VS Code workspace is recommended for running tests.
Useful Scripts
- To run the build in watch mode:
pnpm tsc --project tsconfig-esm.json --watch
- To run the tests in watch mode:
pnpm run test-watch
- To run the examples app at http://localhost:5173
pnpm --filter examples-app run dev
- To run the documentation at http://localhost:2001:
pnpm --filter website run start