Developers

All of Papy’s source code is public on GitHub. Bug fixes, documentation and new features are all welcome — even small pull requests.

GitHub repository Fork Open a pull request Open an issue
engine CI desktop CI website CI mobile CI

The easiest contribution — edit on the web

  1. Click “Suggest an edit to this page” at the bottom of any page on this site.
  2. Make your change in the GitHub editor, then click Commit changes… → Propose changes.
  3. 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

  1. 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
  2. Create a branch from the latest main: feature/*, fix/* or docs/*.
    git fetch upstream
    git switch -c fix/pdf-zoom upstream/main
  3. Run the checks for the area you changed (table below). CI runs the same commands.
  4. Commit, push, then click Compare & pull request.
    git push -u origin fix/pdf-zoom
  5. Fill in the checklist and test results in the PR template; it is merged after review.
ChangedLocal 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

ToolVersion
Rust1.99.1 (installed automatically from rust-toolchain.toml)
Node.js / pnpm24 or later / 10.27.0
Tauri2.x stable — see the prerequisites for your OS
MobileJDK 21, Android SDK, Xcode (macOS)
pnpm install
pnpm desktop:dev                 # run the desktop app
cd engine && cargo test --workspace

Repository layout

FolderContents
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

Open pull requests

  • Loading…
See all

Open issues

  • Loading…
See all

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.