Develop zd

Use the browser surface for fast frontend work and the native shell whenever a change touches files, launching, windows, or packaging.

Set up the checkout

Install a Node version accepted by package.json and Rust through rustup. The repository pins its Rust toolchain in rust-toolchain.toml.

npm ci

Run the app

npm run app                         # native app without a document
npm run app:open -- md README.md    # native app with a file
npm run dev                         # frontend dev server

The browser build deliberately has no filesystem access. Use http://localhost:1420/dev/editor.html for the real editor over an in-memory specimen and http://localhost:1420/dev/specimen.html for design tokens.

Choose the verification cut point

npm run check
npm run test:e2e
cargo test --manifest-path packages/tauri/Cargo.toml
cargo clippy --manifest-path packages/tauri/Cargo.toml --all-targets -- -D warnings
npm run format:check

npm run check covers types, lint, unit and contract tests, and synchronized release versions. Playwright drives Chromium; changes to the Tauri shell still need an appropriate native check.

Find the owning module

Path Responsibility
packages/app/src/miniapps Product surfaces; md owns documents and workspaces
packages/app/src/suite Boot, registry, preferences, and suite-wide overlays
packages/app/src/design Tokens, fonts, and shared visual rules
packages/app/src/platform.ts The frontend’s complete native boundary
packages/tauri Filesystem scope, launch parsing, and native windows
packages/scripts Repository checks and session automation

Read the architecture explanation before moving a responsibility across one of these boundaries. Read CONTRIBUTING.md before preparing a repository change.