Local-first, cross-platform design suite for vector graphics, layout, typography, motion, prototyping, and print — no subscription, no cloud account required.
See the code
Local-first design software for vector, layout, typography, motion, prototyping, and print — one application, no subscription, no cloud account.
Public beta. This repository contains the
0.5.0update. The download page lists verified published application installers for Linux, macOS, and Windows, with their signing status. Core workflows are usable today, but the.varvedocument format and interfaces can still change. Platform signing and updater signatures are verified separately; check the download guidance for the chosen build.
Download Varve · Website · Docs · Releases · Discussions · Sponsor
For designers, illustrators, and print professionals who want a local-first alternative to subscription design tools. Built with a shared Rust rendering engine, Varve runs natively on Linux, macOS, and Windows — and compiles to WASM for the browser. No account, no forced cloud sync, no feature paywall.
Watch the 15-second deterministic editing workflow — select a headline, edit a Bézier path, and open export.
Not yet implemented: real-time collaboration exists only as UI scaffolding. The native desktop application is the full product; an experimental browser build is available at varve.studio/try, and Varve on Chromebook explains the browser, installed-web-app, and ChromeOS Linux routes.
Screenshots are generated by the deterministic capture pipeline
(pnpm screenshots:product) from the running application against seeded
demo documents — never hand-edited. See
scripts/screenshots/README.md.
A short deterministic workflow recording (select, node-edit, export) plays
on varve.studio/product; GitHub renders the
verified still above, with the video available from the linked
product page.
Node editing with live Bézier handles |
A multi-page editorial spread |
A type hierarchy set on the canvas |
The timeline panel in the motion workspace |
Bleed and trim guides for print production |
Workspaces swap panels for the task |
Trace an image into editable paths |
Export to SVG, PNG, WebP, or PDF |
Stackable, non-destructive effects |
Type controls for the selected text |
Apply a reusable pattern and align it to the document |
varve.studio/download — the website
renders every download link and checksum directly from the published release
manifest, so it never goes stale. You can also get the same installers from
GitHub Releases (look for a
release named Varve vX.Y.Z — a separate Varve optional AI models release
also exists on that page for on-demand model assets and is not an application
release). GitHub's
latest-release shortcut
points to the latest Varve application release, not the model artifacts.
| Platform | Package | Status | Signing |
|---|---|---|---|
| Linux x86_64 | AppImage · .deb · .rpm | Supported in the published release | Unsigned — SHA-256 checksums, SBOM, and build provenance published |
| Linux ARM64 | AppImage · .deb · .rpm | Supported in the published release | Unsigned — SHA-256 checksums, SBOM, and build provenance published |
| macOS 13+ Apple Silicon (arm64) | .dmg | Experimental — CI-built and smoke-tested | Unsigned, not notarized |
| Windows 10 (1809+) / 11 x86_64 | NSIS .exe | Experimental — CI-built and smoke-tested | Unsigned |
| Windows 10 (1809+) / 11 ARM64 | NSIS .exe | Experimental — CI-built and smoke-tested | Unsigned |
| macOS Intel (x86_64) | — | Not published | — |
Minimum 4 GB RAM (8 GB recommended), 500 MB storage. Full detail and the policy behind each tier: docs/release/platform-support-matrix.md.
Core editing works fully offline and no account is required. Varve does not send analytics or crash reports by default. Network access is feature-specific and may be used for:
.deb/.rpm packages, and
non-AppImage installs update manually. Update checks send only your
current version, platform, architecture, and release channel — no
document data or device identifiers.Full instructions, prerequisites, and per-OS system packages: docs/development/setup.md.
git clone https://github.com/K-Arthur/varve
cd varve
pnpm install
just check-env # verify Rust, pnpm, just, and WebKitGTK pkg-config
Run the application:
cd apps/desktop
pnpm tauri:dev # native desktop window (Tauri)
# or
pnpm dev # web build via Vite → http://localhost:1420
pnpm --filter @varve/ui storybook runs Storybook, the UI component
development environment — it is not the application.
Test and validate:
pnpm verify:affected # impact-aware validation (default inner loop)
pnpm verify:push # exact outgoing refs; reports CI deferrals
just test-rust # cargo test --workspace
just test-js # Vitest
See docs/development/setup.md#testing for the full validation strategy.
For GitHub Actions diagnosis and CachyOS local runner parity, see
docs/CI_CD_RESILIENCE.md. The shortest pre-push
checkpoint is pnpm verify:push; it validates the exact refs Git is about to
send and reports heavyweight CI deferrals without running the full suite.
Use pnpm verify:plan / pnpm verify:affected for current worktree changes,
bash scripts/install-ci-tooling.sh --check for runner parity, and
just ci-debug RUN_ID=<id> for a concise report from a failed remote run.
Desktop shell (Tauri)
↓
Editor / scene model (@varve/editor, @varve/scene)
↓
Engine abstraction (@varve/engine — Tauri / WASM / in-memory)
↓
Rust native ⇄ WASM (crates/varve-core, varve-layout, varve-effects, …)
↓
Render IR
↓
Canvas2D (default) / WebGPU and WebGL2 (experimental, opt-in)
The Rust engine computes a scene and emits a compact render IR; the webview replays it to Canvas2D by default. WebGPU and WebGL2 are opt-in experimental paths with hardware-dependent coverage and Canvas2D fallback. Start with the architecture overview, then see ADR-0001 for the rationale and docs/architecture/render-pipeline.md for the full pipeline. A bounded browser demo is hosted at varve.studio/try with honest capability messaging; the full product path is the native desktop application.
| Package | Purpose |
|---|---|
@varve/ui | Design system tokens, APG-pattern components, icon system |
@varve/editor | Editor shell, canvas, layers, inspector, tools, shortcuts |
@varve/engine | WASM/native/stub engine facade with IR-replay renderer |
@varve/scene | Immutable document model with ops |
@varve/codegen | SVG, React, Svelte, Vue, Flutter, SwiftUI, Web Components, email HTML, and more |
@varve/platform | Platform abstraction (Tauri/web/memory) |
apps/ desktop shell + website (Astro)
packages/ TypeScript packages (editor, engine, scene, ui, codegen, …)
crates/ Rust workspace (varve-core, varve-layout, varve-effects, …)
docs/ architecture, ADRs, release engineering, security, privacy
scripts/ release, screenshot, and quality-gate tooling
.github/ CI/CD workflows, issue templates, Dependabot
Varve is in public beta. The latest published application release is
v0.2.1 until the 0.5.0 candidate is certified and published. Published
installers cover Linux, macOS (Apple Silicon), and Windows. This checkout
targets source version <!-- VARVE_VERSION -->0.5.0<!-- /VARVE_VERSION -->.
Versioning follows SemVer; release notes are kept in
CHANGELOG.md. Published v0.2.1 used document schema 2.21; this
source tree writes schema 2.33, including a migration that removes the
unwanted outline across existing pointed balloon tails. The app version and
document schema are separate. A 2.33 file may not open safely in older app versions, so back up
important documents and use v0.5.0 or later for files saved by this release.
Documents with the legacy .strata extension remain openable through the
migration pipeline.
Several engine crates (varve-core, varve-colour,
varve-trace, and others) are published separately under
MIT OR Apache-2.0 — genuine OSI-approved open source. See
docs/licensing/mixed-license-model.md.
.varve files to locations you
choose. The browser build uses local IndexedDB/browser storage. There is no
mandatory cloud sync.
External code contributions are temporarily paused while the project stabilizes its build, release, and documentation foundations. See CONTRIBUTING.md and the current contributor guide for the status and future PR workflow. Bug reports, feature ideas, testing, documentation, and design feedback are welcome now via Issues and Discussions.
Report vulnerabilities privately through GitHub Security Advisories — see SECURITY.md for scope and process. Do not file a public issue for a security report.
Product support is available for private installation, download, troubleshooting, and usage questions. Use GitHub Issues for reproducible non-sensitive bugs and Discussions for public questions and workflows. See SUPPORT.md or the complete contact directory. This is an independently maintained project; availability and response times vary.
Varve Community Edition is licensed under the Functional Source License, Version 1.1, MIT Future License (FSL-1.1-MIT) — source-available, not OSI-approved open source, with an automatic conversion to the MIT License two years after each release. See LICENSE for full terms.
Several engine crates (varve-core, varve-colour, varve-trace,
varve-layout, varve-media, varve-effects, varve-upscale,
varve-bgremove) are licensed under MIT OR Apache-2.0 for ecosystem
reuse and grant eligibility. See
mixed-license model.
"Varve" is a trademark of K-Arthur (formerly "Strata"). See TRADEMARKS.md for usage guidelines. Third-party component attribution is in THIRD_PARTY_NOTICES.
TypeScript
83.8%
JavaScript
5.3%
Rust
3.7%
CSS
3.2%
Astro
3.2%
Local-first, cross-platform design suite for vector graphics, layout, typography, motion, prototyping, and print — no subscription, no cloud account required.
See the code
Local-first design software for vector, layout, typography, motion, prototyping, and print — one application, no subscription, no cloud account.
Public beta. This repository contains the
0.5.0update. The download page lists verified published application installers for Linux, macOS, and Windows, with their signing status. Core workflows are usable today, but the.varvedocument format and interfaces can still change. Platform signing and updater signatures are verified separately; check the download guidance for the chosen build.
Download Varve · Website · Docs · Releases · Discussions · Sponsor
For designers, illustrators, and print professionals who want a local-first alternative to subscription design tools. Built with a shared Rust rendering engine, Varve runs natively on Linux, macOS, and Windows — and compiles to WASM for the browser. No account, no forced cloud sync, no feature paywall.
Watch the 15-second deterministic editing workflow — select a headline, edit a Bézier path, and open export.
Not yet implemented: real-time collaboration exists only as UI scaffolding. The native desktop application is the full product; an experimental browser build is available at varve.studio/try, and Varve on Chromebook explains the browser, installed-web-app, and ChromeOS Linux routes.
Screenshots are generated by the deterministic capture pipeline
(pnpm screenshots:product) from the running application against seeded
demo documents — never hand-edited. See
scripts/screenshots/README.md.
A short deterministic workflow recording (select, node-edit, export) plays
on varve.studio/product; GitHub renders the
verified still above, with the video available from the linked
product page.
Node editing with live Bézier handles |
A multi-page editorial spread |
A type hierarchy set on the canvas |
The timeline panel in the motion workspace |
Bleed and trim guides for print production |
Workspaces swap panels for the task |
Trace an image into editable paths |
Export to SVG, PNG, WebP, or PDF |
Stackable, non-destructive effects |
Type controls for the selected text |
Apply a reusable pattern and align it to the document |
varve.studio/download — the website
renders every download link and checksum directly from the published release
manifest, so it never goes stale. You can also get the same installers from
GitHub Releases (look for a
release named Varve vX.Y.Z — a separate Varve optional AI models release
also exists on that page for on-demand model assets and is not an application
release). GitHub's
latest-release shortcut
points to the latest Varve application release, not the model artifacts.
| Platform | Package | Status | Signing |
|---|---|---|---|
| Linux x86_64 | AppImage · .deb · .rpm | Supported in the published release | Unsigned — SHA-256 checksums, SBOM, and build provenance published |
| Linux ARM64 | AppImage · .deb · .rpm | Supported in the published release | Unsigned — SHA-256 checksums, SBOM, and build provenance published |
| macOS 13+ Apple Silicon (arm64) | .dmg | Experimental — CI-built and smoke-tested | Unsigned, not notarized |
| Windows 10 (1809+) / 11 x86_64 | NSIS .exe | Experimental — CI-built and smoke-tested | Unsigned |
| Windows 10 (1809+) / 11 ARM64 | NSIS .exe | Experimental — CI-built and smoke-tested | Unsigned |
| macOS Intel (x86_64) | — | Not published | — |
Minimum 4 GB RAM (8 GB recommended), 500 MB storage. Full detail and the policy behind each tier: docs/release/platform-support-matrix.md.
Core editing works fully offline and no account is required. Varve does not send analytics or crash reports by default. Network access is feature-specific and may be used for:
.deb/.rpm packages, and
non-AppImage installs update manually. Update checks send only your
current version, platform, architecture, and release channel — no
document data or device identifiers.Full instructions, prerequisites, and per-OS system packages: docs/development/setup.md.
git clone https://github.com/K-Arthur/varve
cd varve
pnpm install
just check-env # verify Rust, pnpm, just, and WebKitGTK pkg-config
Run the application:
cd apps/desktop
pnpm tauri:dev # native desktop window (Tauri)
# or
pnpm dev # web build via Vite → http://localhost:1420
pnpm --filter @varve/ui storybook runs Storybook, the UI component
development environment — it is not the application.
Test and validate:
pnpm verify:affected # impact-aware validation (default inner loop)
pnpm verify:push # exact outgoing refs; reports CI deferrals
just test-rust # cargo test --workspace
just test-js # Vitest
See docs/development/setup.md#testing for the full validation strategy.
For GitHub Actions diagnosis and CachyOS local runner parity, see
docs/CI_CD_RESILIENCE.md. The shortest pre-push
checkpoint is pnpm verify:push; it validates the exact refs Git is about to
send and reports heavyweight CI deferrals without running the full suite.
Use pnpm verify:plan / pnpm verify:affected for current worktree changes,
bash scripts/install-ci-tooling.sh --check for runner parity, and
just ci-debug RUN_ID=<id> for a concise report from a failed remote run.
Desktop shell (Tauri)
↓
Editor / scene model (@varve/editor, @varve/scene)
↓
Engine abstraction (@varve/engine — Tauri / WASM / in-memory)
↓
Rust native ⇄ WASM (crates/varve-core, varve-layout, varve-effects, …)
↓
Render IR
↓
Canvas2D (default) / WebGPU and WebGL2 (experimental, opt-in)
The Rust engine computes a scene and emits a compact render IR; the webview replays it to Canvas2D by default. WebGPU and WebGL2 are opt-in experimental paths with hardware-dependent coverage and Canvas2D fallback. Start with the architecture overview, then see ADR-0001 for the rationale and docs/architecture/render-pipeline.md for the full pipeline. A bounded browser demo is hosted at varve.studio/try with honest capability messaging; the full product path is the native desktop application.
| Package | Purpose |
|---|---|
@varve/ui | Design system tokens, APG-pattern components, icon system |
@varve/editor | Editor shell, canvas, layers, inspector, tools, shortcuts |
@varve/engine | WASM/native/stub engine facade with IR-replay renderer |
@varve/scene | Immutable document model with ops |
@varve/codegen | SVG, React, Svelte, Vue, Flutter, SwiftUI, Web Components, email HTML, and more |
@varve/platform | Platform abstraction (Tauri/web/memory) |
apps/ desktop shell + website (Astro)
packages/ TypeScript packages (editor, engine, scene, ui, codegen, …)
crates/ Rust workspace (varve-core, varve-layout, varve-effects, …)
docs/ architecture, ADRs, release engineering, security, privacy
scripts/ release, screenshot, and quality-gate tooling
.github/ CI/CD workflows, issue templates, Dependabot
Varve is in public beta. The latest published application release is
v0.2.1 until the 0.5.0 candidate is certified and published. Published
installers cover Linux, macOS (Apple Silicon), and Windows. This checkout
targets source version <!-- VARVE_VERSION -->0.5.0<!-- /VARVE_VERSION -->.
Versioning follows SemVer; release notes are kept in
CHANGELOG.md. Published v0.2.1 used document schema 2.21; this
source tree writes schema 2.33, including a migration that removes the
unwanted outline across existing pointed balloon tails. The app version and
document schema are separate. A 2.33 file may not open safely in older app versions, so back up
important documents and use v0.5.0 or later for files saved by this release.
Documents with the legacy .strata extension remain openable through the
migration pipeline.
Several engine crates (varve-core, varve-colour,
varve-trace, and others) are published separately under
MIT OR Apache-2.0 — genuine OSI-approved open source. See
docs/licensing/mixed-license-model.md.
.varve files to locations you
choose. The browser build uses local IndexedDB/browser storage. There is no
mandatory cloud sync.
External code contributions are temporarily paused while the project stabilizes its build, release, and documentation foundations. See CONTRIBUTING.md and the current contributor guide for the status and future PR workflow. Bug reports, feature ideas, testing, documentation, and design feedback are welcome now via Issues and Discussions.
Report vulnerabilities privately through GitHub Security Advisories — see SECURITY.md for scope and process. Do not file a public issue for a security report.
Product support is available for private installation, download, troubleshooting, and usage questions. Use GitHub Issues for reproducible non-sensitive bugs and Discussions for public questions and workflows. See SUPPORT.md or the complete contact directory. This is an independently maintained project; availability and response times vary.
Varve Community Edition is licensed under the Functional Source License, Version 1.1, MIT Future License (FSL-1.1-MIT) — source-available, not OSI-approved open source, with an automatic conversion to the MIT License two years after each release. See LICENSE for full terms.
Several engine crates (varve-core, varve-colour, varve-trace,
varve-layout, varve-media, varve-effects, varve-upscale,
varve-bgremove) are licensed under MIT OR Apache-2.0 for ecosystem
reuse and grant eligibility. See
mixed-license model.
"Varve" is a trademark of K-Arthur (formerly "Strata"). See TRADEMARKS.md for usage guidelines. Third-party component attribution is in THIRD_PARTY_NOTICES.
TypeScript
83.8%
JavaScript
5.3%
Rust
3.7%
CSS
3.2%
Astro
3.2%