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.
- Six task workspaces — Design, Print, Draw, Photo, Motion, and Email share one document. Panels can be docked, split, floated, and restored; Logo tools stay in Design and Code export is available from every workspace.
- Vector and layout — paths, Boolean operations, Shape Builder, node editing, multi-page documents, flex/grid layout, reusable components, and pattern definitions with bounded editing and export support.
- Typography — paragraph and character styling, supported OpenType features, variable-font axes, text-on-path, and shaped-glyph outlines.
- Illustration and comics — brush opacity/flow, stylus controls, separable flats and shading, panel layouts, editable captions and balloons, and localization-aware lettering.
- Photo work — adjustments, retouching, tracing, masks, and colorization; supported RAW input and model-assisted workflows have documented limits.
- Motion and prototyping — a timeline with keyframes, easing, and interactive prototypes. Motion is still in public beta.
- Presentation decks — ordered editable frames with preview and raster PDF or PNG delivery. The PDF is not editable or searchable and has no tagged reading order.
- Print production (desktop) — CMYK via ICC profiles, PDF/X export, and printer marks. Export support varies by format and document content.
- Tokens and local plugins — manual token import/re-import and bounded local WebAssembly plugins for selected-layer analysis and batch renaming; there is no automatic token write-back or plugin marketplace.
- Export — SVG, PDF, React, Svelte, Vue, Flutter, SwiftUI, email HTML, Web Components, Tailwind, and Lottie/CSS/SVG animation, computed locally.
- Images and local intelligence — adjustments, effects, background removal, palette extraction, object selection, depth blur, and optional on-device enhancement. Optional models download only when requested.
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.
varve.studio/download — the website
renders installer links and checksums from the verified published release
manifest. 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:
- Optional model downloads, fetched from the model provider shown in the model dialog and verified against a pinned checksum when one is available.
- Online font and icon search, when you invoke those providers.
- Update checks, only after you enable them. The published stable feed
carries Tauri-signed metadata for Linux AppImage and Windows NSIS builds
on both x86_64 and ARM64. macOS, the Linux
.deb/.rpmpackages, and non-AppImage installs update manually. Update checks send only your current version, platform, architecture, and release channel — no document data or device identifiers. - Optional cloud providers, only when you configure and invoke one (for example, a user-supplied background-removal endpoint).
- Consent-gated aggregate analytics. Crash reports remain local unless a build explicitly configures an upload endpoint; the public build does not.
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-configRun the application:
cd apps/desktop
pnpm tauri:dev # native desktop window (Tauri)
# or
pnpm dev # web build via Vite → http://localhost:1420pnpm --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 # VitestSee 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.
Is Varve free?
Yes. The Community Edition is free to download and use, with no subscription and no feature paywall.
Is Varve open source or source-available?
The application is source-available under FSL-1.1-MIT: the source is public and you may use, modify, and redistribute it for any purpose that doesn't compete commercially with Varve. Each release automatically converts to the plain MIT license two years after it ships. See LICENSE.
Several engine crates (varve-core, varve-colour,
varve-trace, and others) are licensed separately under
MIT OR Apache-2.0 — genuine OSI-approved open source. See
docs/licensing/mixed-license-model.md.
Does Varve require an account or the cloud?
No account is required, and core editing works fully offline. Optional network features include model downloads, online font/icon search, consented update checks, user-configured cloud providers, and aggregate analytics — see Privacy and local-first operation.
What operating systems does Varve support?
Linux, macOS, and Windows. See Platform support for per-platform maturity and signing status. There is no mobile build.
Does Varve support vector and raster graphics?
Yes to both: vector paths/shapes/boolean ops, and a raster adjustment/filter pipeline including on-device background removal.
Does Varve support CMYK and print workflows?
Yes, on desktop: CMYK via ICC profiles, PDF/X-1a and PDF/X-4 export, crop and registration marks, and preflight checks. Print export is not available in the web/WASM build.
Where are Varve files stored?
The desktop app writes local
.varve files to locations you
choose. The browser build uses local IndexedDB/browser storage. There is no
mandatory cloud sync.
Does Varve include AI features?
Yes, as optional local workflows. Depending on the build, these include background removal, image enhancement, object selection, depth-aware effects, palette extraction, and local asset search. Some small baseline models ship with the app; larger models are downloaded on demand, verified against a checksum when available, and run locally. There is no Varve-hosted inference service.
Does Varve support real-time collaboration?
Not yet. There is UI scaffolding for it, but no collaboration transport or protocol is implemented today.
Is Varve production ready?
It's public beta software. Core workflows are usable, but interfaces and the document format can still change — see Project status.
Does Varve work in a browser?
An experimental browser build is available at varve.studio/try — no download required. It runs the editor on the WASM engine with honest capability messaging about what the browser build can and cannot do; it can also be installed as a web app. The full product experience is the native desktop application. On a Chromebook, see Varve on Chromebook for the browser, installed-web-app, and ChromeOS Linux routes.
How do I report a bug or a security vulnerability?
Bugs and feature feedback: GitHub Issues. Security vulnerabilities: report privately per SECURITY.md — do not open a public issue.
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.
- General: hello@varve.studio
- Support: support@varve.studio
- Security: security@varve.studio, or GitHub Private Vulnerability Reporting
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.










