# Contributing - [Setup](#setup) - [Creating new themes](#creating-new-themes) - [Adding localizations](#adding-localizations) Thanks for considering to contribute! ## Setup To contribute to NotionNext, follow these steps: 1. [Fork][fork] the repository to your GitHub account. 2. Clone the repository to your device (or use something like Codespaces). 3. Create a new branch in the repository. 4. Make your modifications. 5. Commit your modifications and push the branch. 6. [Create a PR][pr] from the branch in your fork to NotionNext' `main` branch. This project is built with [Next.js][next.js] and `yarn` as the package manager. Here are some commands that you can use: - `yarn`: install dependencies - `yarn dev`: compile and hot-reload for development - `yarn build`: compile and minify for production - `yarn start`: serve the compiled build in production mode ## Creating new themes If you want to submit your custom theme to NotionNext, copy a new folder in [`themes`][themes-dir] from [`example`][example]. The folder name will be the theme's key. ## Adding localizations If your language is not yet supported by NotionNext, please contribute a localization! Follow these steps to add a new localization: 1. Copy one of the [en-US.js][en-US.js] in [lang-dir][lang-dir] and rename the new directory into your language's code ( e.g. `zh-CN.js`). 2. Start translating the strings. 3. Add your language config to [lang.js][lang.js]. 4. [Create a PR][pr] with your localization updates. [fork]: https://github.com/tangly1024/NotionNext/fork [pr]: https://github.com/tangly1024/NotionNext/compare [next.js]: https://github.com/vercel/next.js [themes-dir]: themes [example]: themes/example [lang-dir]: lib/lang [en-US.js]: lib/lang/en-US.js [lang.js]: lib/lang.js