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