Skip to main content

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:

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

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