Thanks for your interest! Markup is a small, native, open-source macOS Markdown editor (Tauri + React). Issues, bug reports, and PRs are all welcome.
- Be kind and concise. Bug reports with clear repro steps get fixed fastest — there's an issue template for that.
- macOS-only, pre-1.0. The product is still moving; check the roadmap before proposing large features.
- Open an issue before a big PR. For typos, small bug fixes, and docs, just send the PR.
Requirements: macOS 12+, Node 18+ with pnpm 8+, Rust 1.77+, and Xcode Command Line Tools (xcode-select --install).
git clone https://github.com/oratis/Markup
cd Markup
pnpm install
pnpm tauri:dev # first run compiles Rust deps — 5–10 minRun the same checks CI runs — green locally means green in CI:
pnpm tsc --noEmit # type-check
pnpm lint # Biome (run `pnpm lint:fix` to auto-fix)
pnpm test # Vitest (frontend)
pnpm test:rust # cargo tests (backend)
pnpm build # Vite frontend build- Branch off
main(fix/...,feat/...). - Keep the change focused; update or add tests where it makes sense.
- Open a PR into
main. Branch protection requires two CI checks to pass before merge:- Frontend — lint +
tsc+ build + tests - Rust — build + test
- Frontend — lint +
- PRs land as a merge commit; the branch is deleted after merge.
Don't push feature work directly to main.
- Frontend: TypeScript + React, formatted/linted by Biome (
biome.json). No separate Prettier/ESLint. - Rust: standard
rustfmt; keepcargo clippyclean. - Match the surrounding code. Prefer small, readable functions over cleverness.
src/ React frontend (components, lib, store.ts)
src-tauri/ Rust backend (commands, vault, index, scanner, watcher)
docs/ design notes, ADRs, release & GTM plans
scripts/ DMG layout, MAS build, signing, fixtures
.github/ CI + release workflows, issue/PR templates
Design rationale lives in docs/ — start with the ADRs and the redesign plan.
Cutting a release is documented in docs/RELEASE-PLAN.md §3 (bump three version files → tag vX.Y.Z → CI builds dual-arch DMGs). Signing setup is in docs/app-store/signing-setup.md.
By contributing, you agree your contributions are licensed under the project's MIT License.