Developers
All of Papy’s source code is public on GitHub. Bug fixes, documentation and new features are all welcome — even small pull requests.
- The easiest contribution
- Pull request workflow
- Development setup
- Repository layout
- Open work
- License
The easiest contribution — edit on the web
- Click “Suggest an edit to this page” at the bottom of any page on this site.
- Make your change in the GitHub editor, then click Commit changes… → Propose changes.
- GitHub creates the fork and branch for you and takes you to the pull request screen. Click Create pull request and you are done.
If you have feedback but no code, tell us through an issue or the contact form. New here? Start with issues labeled good first issue.
Pull request workflow
- Fork the repository and clone your copy.
git clone https://github.com/<your-account>/papy.git cd papy git remote add upstream https://github.com/namjh654/papy.git - Create a branch from the latest
main:feature/*,fix/*ordocs/*.git fetch upstream git switch -c fix/pdf-zoom upstream/main - Run the checks for the area you changed (table below). CI runs the same commands.
- Commit, push, then click Compare & pull request.
git push -u origin fix/pdf-zoom - Fill in the checklist and test results in the PR template; it is merged after review.
| Changed | Local check |
|---|---|
engine/ | cargo fmt --all --check && cargo clippy --workspace --all-targets -- -D warnings && cargo test --workspace |
apps/desktop/ | pnpm --filter @papy/desktop typecheck · pnpm desktop:dev |
website/ | pnpm --filter @papy/website test |
apps/mobile/ | cd apps/mobile && scripts/orca.sh check |
The full rules are in CONTRIBUTING.md. The key points: never log document contents or personal paths, and keep the engine independent of the UI.
Development setup
| Tool | Version |
|---|---|
| Rust | 1.99.1 (installed automatically from rust-toolchain.toml) |
| Node.js / pnpm | 24 or later / 10.27.0 |
| Tauri | 2.x stable — see the prerequisites for your OS |
| Mobile | JDK 21, Android SDK, Xcode (macOS) |
pnpm install
pnpm desktop:dev # run the desktop app
cd engine && cargo test --workspace
Repository layout
| Folder | Contents |
|---|---|
engine/ | Rust document engine — parsing, model and rendering. No UI framework dependency |
apps/desktop/ | Tauri 2 + React desktop app (Windows, macOS, Linux) |
apps/mobile/ | Kotlin Multiplatform — Android Compose, iOS SwiftUI (later) |
apps/web/ | Browser viewer (after WASM validation) |
website/ | This site |
docs/ | Architecture, decision records (ADRs), format and license docs (mostly in Korean) |
Open work
License
Papy uses the PolyForm Noncommercial 1.0.0 license. By sending a pull request you agree to provide your contribution under the same license. Code under licenses that conflict with the noncommercial restriction, such as GPL or AGPL, cannot be accepted.