- Repository and organization
- First contribution
- Setup
- Community and governance
- Creating new themes
- Adding localizations
- Environment Variables
Thanks for considering to contribute!
The canonical repository is now under the notionnext-org GitHub organization (moved from personal ownership for clearer governance):
https://github.com/notionnext-org/NotionNext
If you contribute long-term or help with org-wide automation, check the organization page for how to join. You are welcome to request membership when that fits your role.
If you cloned the repo before the transfer, update your default remote so you do not rely on redirects forever:
git remote set-url origin https://github.com/notionnext-org/NotionNext.git
git remote -vThe fork-and-PR workflow is unchanged; open pull requests against notionnext-org/NotionNext.
- Pick an issue labeled
good first issue, or fix a doc page you are reading. - Docs: edit
docs/user-guide/**/*.md, preview withyarn docs:site:dev, open a PR. See maintain-docs. - Code: use a feature branch, run lint/type-check/tests, open a PR.
- Larger changes: read RFC guide or start a Discussion first.
- Maintainer path: community-participate · MAINTAINERS.md.
To contribute to NotionNext, follow these steps:
- Fork the repository to your GitHub account.
- Clone the repository to your device (or use something like Codespaces).
- Create a new branch in the repository.
- Make your modifications.
- Commit your modifications and push the branch.
- Create a PR from the branch in your fork to NotionNext'
mainbranch.
Please follow these rules for every contribution:
- Create a dedicated branch for each task (do not commit directly to
main). - Keep PRs focused and minimal (avoid mixing unrelated refactors/config edits).
- Do not commit personal/local files such as
.env.local. - Do not submit personalized config defaults that can affect other contributors.
- Run lint/tests before opening PR.
Core maintainers should also read Maintenance and change-control philosophy to keep main stable and reviewable.
For full Chinese workflow guidance, see:
This project is built with Next.js and yarn as the package manager.
Here are some commands that you can use:
yarn: install dependenciesyarn dev: compile and hot-reload for developmentyarn build: compile and minify for productionyarn start: serve the compiled build in production mode
If you want to submit your custom theme to NotionNext, copy a new folder in
themes from example. The folder name will be the
theme's key.
If your language is not yet supported by NotionNext, please contribute a localization! Follow these steps to add a new localization:
- Copy one of the en-US.js in lang-dir and rename the new
directory into your language's code ( e.g.
zh-CN.js). - Start translating the strings.
- Add your language config to lang.js.
- Create a PR with your localization updates.
NotionNext uses environment variables for configuration. To set up your development environment:
- Copy
.env.exampleto.env.local - Fill in the required values in
.env.local - Never commit
.env.localto version control
The configuration priority is:
- Notion Config Table (highest)
- Environment Variables
- blog.config.js (lowest)