K-Arthur/varve

Local-first, cross-platform design suite for vector graphics, layout, typography, motion, prototyping, and print — no subscription, no cloud account required.

TypeScript

25

8 commits

updated Oct 3, 2026

See the code

README

Varve Varve

Local-first design software for vector, layout, typography, motion, prototyping, and print — one application, no subscription, no cloud account.

CI status Latest application release License: FSL-1.1-MIT Status: public beta GitHub Sponsors

Public beta. This repository contains the 0.5.0 update. The download page lists verified published application installers for Linux, macOS, and Windows, with their signing status. Core workflows are usable today, but the .varve document 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.

The Varve workspace: a poster document on the canvas with the layers panel on the left and the properties inspector on the right The same Varve poster document with the application in dark theme

Watch the 15-second deterministic editing workflow — select a headline, edit a Bézier path, and open export.

What works today

  • 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.

See Varve in action

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.

A curved vector shape in Varve with its anchor points and Bézier handles shown in node editing mode

Node editing with live Bézier handles

A two-page editorial spread in Varve with headlines, two-column body text and image plates

A multi-page editorial spread

A type specimen in Varve showing a display character, a character set, a subhead and a body paragraph

A type hierarchy set on the canvas

The Varve timeline panel with a track for the selected layer

The timeline panel in the motion workspace

A page on the Varve canvas with a dashed bleed guide beyond the trim edge and the Page Print inspector showing per-edge bleed values

Bleed and trim guides for print production

The Varve menubar workspace switcher with the Print workspace selected, showing the Masters, Pages and Spreads panels it applies

Workspaces swap panels for the task

The Varve Vectorize dialog in colour mode, tracing an imported photo into editable vector paths with colour count and path-fitting controls

Trace an image into editable paths

The Varve advanced export dialog showing a destination, filename template and format options

Export to SVG, PNG, WebP, or PDF

The Varve Effects inspector with a drop shadow added to the selected shape, showing offset, blur, spread, opacity and blend-mode controls

Stackable, non-destructive effects

The Varve typography inspector showing font family, weight, style, size, line height and letter spacing for the selected text

Type controls for the selected text

A reusable dotted vector pattern fills a selected shape in Varve, with repeat and document-alignment controls visible in the inspector

Apply a reusable pattern and align it to the document

Download

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 support

PlatformPackageStatusSigning
Linux x86_64AppImage · .deb · .rpmSupported in the published releaseUnsigned — SHA-256 checksums, SBOM, and build provenance published
Linux ARM64AppImage · .deb · .rpmSupported in the published releaseUnsigned — SHA-256 checksums, SBOM, and build provenance published
macOS 13+ Apple Silicon (arm64).dmgExperimental — CI-built and smoke-testedUnsigned, not notarized
Windows 10 (1809+) / 11 x86_64NSIS .exeExperimental — CI-built and smoke-testedUnsigned
Windows 10 (1809+) / 11 ARM64NSIS .exeExperimental — CI-built and smoke-testedUnsigned
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.

Privacy and local-first operation

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/.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.
  • 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.

Develop Varve

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.

Architecture

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.

PackagePurpose
@varve/uiDesign system tokens, APG-pattern components, icon system
@varve/editorEditor shell, canvas, layers, inspector, tools, shortcuts
@varve/engineWASM/native/stub engine facade with IR-replay renderer
@varve/sceneImmutable document model with ops
@varve/codegenSVG, React, Svelte, Vue, Flutter, SwiftUI, Web Components, email HTML, and more
@varve/platformPlatform 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

Project status

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.

Frequently asked questions

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 published 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.

Contributing

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.

Security

Report vulnerabilities privately through GitHub Security Advisories — see SECURITY.md for scope and process. Do not file a public issue for a security report.

Support

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.

Contact

License

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.

cross-platform
design-editor
design-tool
desktop-app
graphic-design
local-first
motion-design
print-design
prototyping
rust
source-available
tauri
typescript
typography
vector-editor
vector-graphics
wasm
webassembly
webgpu

K-Arthur/varve

Local-first, cross-platform design suite for vector graphics, layout, typography, motion, prototyping, and print — no subscription, no cloud account required.

TypeScript

25

8 commits

updated Oct 3, 2026

See the code

README

Varve Varve

Local-first design software for vector, layout, typography, motion, prototyping, and print — one application, no subscription, no cloud account.

CI status Latest application release License: FSL-1.1-MIT Status: public beta GitHub Sponsors

Public beta. This repository contains the 0.5.0 update. The download page lists verified published application installers for Linux, macOS, and Windows, with their signing status. Core workflows are usable today, but the .varve document 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.

The Varve workspace: a poster document on the canvas with the layers panel on the left and the properties inspector on the right The same Varve poster document with the application in dark theme

Watch the 15-second deterministic editing workflow — select a headline, edit a Bézier path, and open export.

What works today

  • 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.

See Varve in action

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.

A curved vector shape in Varve with its anchor points and Bézier handles shown in node editing mode

Node editing with live Bézier handles

A two-page editorial spread in Varve with headlines, two-column body text and image plates

A multi-page editorial spread

A type specimen in Varve showing a display character, a character set, a subhead and a body paragraph

A type hierarchy set on the canvas

The Varve timeline panel with a track for the selected layer

The timeline panel in the motion workspace

A page on the Varve canvas with a dashed bleed guide beyond the trim edge and the Page Print inspector showing per-edge bleed values

Bleed and trim guides for print production

The Varve menubar workspace switcher with the Print workspace selected, showing the Masters, Pages and Spreads panels it applies

Workspaces swap panels for the task

The Varve Vectorize dialog in colour mode, tracing an imported photo into editable vector paths with colour count and path-fitting controls

Trace an image into editable paths

The Varve advanced export dialog showing a destination, filename template and format options

Export to SVG, PNG, WebP, or PDF

The Varve Effects inspector with a drop shadow added to the selected shape, showing offset, blur, spread, opacity and blend-mode controls

Stackable, non-destructive effects

The Varve typography inspector showing font family, weight, style, size, line height and letter spacing for the selected text

Type controls for the selected text

A reusable dotted vector pattern fills a selected shape in Varve, with repeat and document-alignment controls visible in the inspector

Apply a reusable pattern and align it to the document

Download

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 support

PlatformPackageStatusSigning
Linux x86_64AppImage · .deb · .rpmSupported in the published releaseUnsigned — SHA-256 checksums, SBOM, and build provenance published
Linux ARM64AppImage · .deb · .rpmSupported in the published releaseUnsigned — SHA-256 checksums, SBOM, and build provenance published
macOS 13+ Apple Silicon (arm64).dmgExperimental — CI-built and smoke-testedUnsigned, not notarized
Windows 10 (1809+) / 11 x86_64NSIS .exeExperimental — CI-built and smoke-testedUnsigned
Windows 10 (1809+) / 11 ARM64NSIS .exeExperimental — CI-built and smoke-testedUnsigned
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.

Privacy and local-first operation

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/.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.
  • 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.

Develop Varve

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.

Architecture

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.

PackagePurpose
@varve/uiDesign system tokens, APG-pattern components, icon system
@varve/editorEditor shell, canvas, layers, inspector, tools, shortcuts
@varve/engineWASM/native/stub engine facade with IR-replay renderer
@varve/sceneImmutable document model with ops
@varve/codegenSVG, React, Svelte, Vue, Flutter, SwiftUI, Web Components, email HTML, and more
@varve/platformPlatform 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

Project status

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.

Frequently asked questions

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 published 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.

Contributing

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.

Security

Report vulnerabilities privately through GitHub Security Advisories — see SECURITY.md for scope and process. Do not file a public issue for a security report.

Support

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.

Contact

License

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.

cross-platform
design-editor
design-tool
desktop-app
graphic-design
local-first
motion-design
print-design
prototyping
rust
source-available
tauri
typescript
typography
vector-editor
vector-graphics
wasm
webassembly
webgpu

Languages

TypeScript

83.8%

JavaScript

5.3%

Rust

3.7%

CSS

3.2%

Astro

3.2%