When contributing to Readest, whether on GitHub or in other community spaces:
- Be respectful, civil, and open-minded.
- Before opening a new pull request, try searching through the issue tracker for known issues or fixes.
- If you want to make code changes based on your personal opinion(s), make sure you open an issue first describing the changes you want to make, and open a pull request only when your suggestions get approved by maintainers.
In order to not waste your time implementing a change that has already been declined, or is generally not needed, start by opening an issue describing the problem you would like to solve.
For the best experience to build Readest for yourself, use a recent version of Node.js and Rust. Refer to the Tauri documentation for details on setting up the development environment prerequisites on different platforms.
Basically you need to install or update the following development tools:
- Node.js and pnpm for Next.js development
- Rust and Cargo for Tauri development
nvm install v22
nvm use v22
npm install -g pnpm
rustup updateTo get started with Readest, follow these steps to clone and build the project.
git clone https://github.com/readest/readest.git
cd readest
git submodule update --init --recursive# might need to rerun this when code is updated
pnpm install
# copy pdfjs-dist to Next.js public directory
pnpm --filter @readest/readest-app setup-pdfjsTo confirm that all dependencies are correctly installed, run the following command:
pnpm tauri infoThis command will display information about the installed Tauri dependencies and configuration on your platform. Note that the output may vary depending on the operating system and environment setup. Please review the output specific to your platform for any potential issues.
For Windows targets, “Build Tools for Visual Studio 2022” (or a higher edition of Visual Studio) and the “Desktop development with C++” workflow must be installed. For Windows ARM64 targets, the “VS 2022 C++ ARM64 build tools” and "C++ Clang Compiler for Windows" components must be installed. And make sure clang can be found in the path by adding C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\Llvm\x64\bin for example in the environment variable Path.
pnpm tauri devpnpm tauri buildNow you're all setup and can start implementing your changes.
This project is a monorepo. The code for the readest-app is in the apps/readest-app directory. Here are some useful scripts for developing the frontend only without compiling Tauri:
| Command | Description |
|---|---|
pnpm dev-web |
Starts the development server for the web app only |
pnpm build-web |
Builds the web app |
Recommended Visual Studio Code plugins for development:
- JavaScript and TypeScript Nightly (ms-vscode.vscode-typescript-next)
- VS Code ESLint extension (dbaeumer.vscode-eslint)
- Prettier - Code formatter (esbenp.prettier-vscode)
- rust-analyzer (rust-lang.rust-analyzer) (for Tauri development only)
Check that your code follows the project's style guidelines by running:
pnpm buildPlease also make a manual, functional test of your changes. When all that's done, it's time to file a pull request to upstream and fill out the title and body appropriately.
This documented was inspired by the contributing guidelines for cloudflare/wrangler2.