Skip to content

Repository files navigation

ArtCraft

DesignCraft

Page layout and publishing; an open-source, clean-room reimplementation of Adobe InDesign, rebuilt in pure Rust.

A fast, open-source, clean-room take on the Adobe InDesign workflow. It runs natively on macOS, Windows and Linux, and in the browser via WebAssembly.
By the ArtCraft team.

Written in Rust Runs on macOS, Windows, Linux and the web License: MIT OR Apache-2.0 Agent-drivable over MCP

Join the ArtCraft community on Discord

DesignCraft on getartcraft.com · ArtCraft · All Crafting Apps


DesignCraft showing a magazine spread: a threaded three-column story is selected with its in/out ports and thread line, the Control panel shows its position in picas and the Properties panel its text frame options
Quarterly, Spring Issue: threaded three-column body text, a wrapped pull quote and parent-page folios, all set by DesignCraft's own paragraph composer.

Note

ArtCraft is a community of artists from all walks of life. Digital, generative, music, games — if you make things, you're one of us. Come say hi on Discord.

The sample magazine · Why DesignCraft · Quick start · Web · Architecture · The Crafting Apps · License and credits

The sample magazine

Every page below was laid out by DesignCraft from code (crates/engine/src/sample.rs) and exported by its own renderer. Try it yourself with File → New → Sample Document, or start the app with --sample.

Magazine cover for The Spring Issue, No. 01: a dusk landscape of layered purple hills under a large pale sun, with the white serif headline The Quiet Art of Layout and an italic deck below

Cover. A full-bleed graphic frame, display type and an italic deck.

Feature opener titled Notes on the Grid, with an orange FEATURE · DESIGN kicker over a rule, an italic deck, a wide landscape picture with a small caption, and two columns of justified body text above a QUARTERLY folio

Styles. Kicker rule, headline, deck, caption and justified two-column body.

Three-column page of justified, hyphenated body text that wraps around a shaded pull quote reading The best layouts disappear. What remains is the story., with a gradient rule and SPRING ISSUE folio at the foot

Threading, columns and text wrap. One story flows through three columns and around the pull quote.

Coming Next page titled Color, Ink and Paper on a plum background, with four swatch circles labeled Ink Plum, Sunset, C=100 M=0 Y=0 K=0 and Paper Warm, above a short paragraph of body text

Swatches. Named colors and a CMYK process swatch, laid out as a palette.

Why DesignCraft

  • Familiar. InDesign's layout, tools, menus, panels and shortcuts: spreads and parent pages, frames and threaded stories, the Control panel, paragraph and character styles, swatches, text wrap and more. If you know InDesign, you already know how to use it.
  • Beautiful type. A Knuth–Plass paragraph composer (plus single-line), dictionary hyphenation (the public-domain Moby word list plus our own trained patterns), word, letter and glyph-scaling justification, keeps, optical margin alignment, columns, baseline grid, tabs, rules and shading. Line breaks are identical on screen and in PDF.
  • Fast. Multithreaded SIMD rendering (vello_cpu), copy-on-write documents with O(1) undo snapshots, and cached composition.
  • Open. A documented native format, IDML import and export, PNG export, and PDF on the roadmap. No subscription, no licence server, no telemetry.
  • Agent-native. Every menu item, tool gesture, panel control and dialog can be driven over a JSON control channel and an MCP server, so Claude and other agents can lay out and edit documents like a designer. See docs/control-protocol.md and docs/mcp.md.
  • Everywhere. One Rust codebase for desktop and the web.

Quick start

cargo run --release -p designcraft                         # desktop app (start screen)
cargo run --release -p designcraft -- --sample             # open the sample magazine
cargo run --release -p designcraft -- --sample --control 7979   # + JSON control channel
cargo run --release -p designcraft-cli -- run --sample --all-pages out/       # headless: render every page to PNG
cargo run --release -p designcraft-cli -- commands         # list every command
cargo xtask ci                                             # fmt, clippy, tests, assets, layering, wasm

To drive a running app, send JSON lines to 127.0.0.1:7979. The protocol is described in docs/control-protocol.md.

Web

cd apps/designcraft-web && trunk build --release          # → dist/web (serve it with any static server)
cd apps/designcraft-web && trunk serve --release          # http://127.0.0.1:8767

You need trunk and the wasm32-unknown-unknown target. The same app runs through eframe's web runner on WebGPU, falling back to WebGL2 (?webgl forces it; ?sample opens the sample magazine). Open and Place use the browser's file picker, and dropping files works too. Save and Export download the file. The web build has no control channel.

Architecture

DesignCraft is an engine-first Cargo workspace with enforced layering (cargo xtask layers). The egui frontend is a separate crate, so the UI can be swapped without touching the engine.

Layer Crates
L0 geom (paths, units & measurement parsing, corner options) · color (CMYK/RGB/Lab, swatches, tints, gradients)
L1 doc (spreads, pages, parents, layers, frames, stories, styles) · fonts (font DB, shaping, outlines)
L2 compose (the text engine)
L3 render (vello_cpu)
L4 tools (pointer events → commands + overlays)
L5 engine (session, history, command registry)
L6 ui-egui (InDesign-style UI, control channel)
L7 apps/designcraft, apps/designcraft-cli, apps/designcraft-web
  • Status and milestones: ROADMAP.md
  • Contributor and agent rules (clean-room, asset policy, quality gates): AGENTS.md
  • Bundled assets: every one is listed with its licence in ASSETS.md
  • App icon and colour: a calico cat in a polka-dot scarf on DesignCraft green #7bb51c; see assets/app-icon/

The Crafting Apps

DesignCraft is one of the Crafting Apps: free, open-source creative tools from the ArtCraft team, each written from scratch in Rust and each able to stand on its own.

App What it's for Code Learn more
PhotoCraft Image editing: layers, masks, type and real PSD files GitHub Website
VectorCraft Vector illustration GitHub Website
FilmCraft Video editing, color and sound GitHub Website
LightCraft Photo library and raw development GitHub Website
PrintCraft Reading, organizing and protecting PDFs GitHub Website
EffectCraft Motion graphics and visual effects GitHub Website
DesignCraft Page layout and publishing · you are here GitHub Website

And ArtCraft itself, our AI image and video studio for artists who want real control.


Join the ArtCraft community on Discord

Come make things with us

Our Discord is where artists of every kind hang out: people who paint, shoot, draw, cut film, set type, and people still figuring out what they like to make. Share what you're working on, ask for help, tell us what's broken, or tell us what you wish these tools could do. Whatever your medium and however long you've been at it, you're welcome here.

discord.gg/artcraft · getartcraft.com · The Crafting Apps · DesignCraft

License and credits

DesignCraft is dual-licensed under MIT or Apache-2.0, at your option. Copyright (c) 2026 ArtCraft Team and the DesignCraft contributors. Required notices are in NOTICE.

Bundled fonts, icons, images and other assets keep their own open licenses; each one is listed with its author, source and license in ASSETS.md.

The bundled fonts are under the SIL Open Font License; all UI icons are drawn in code and are original.

The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the ArtCraft Team and are not covered by this license. They may be used only unmodified, and only as part of this repository and DesignCraft, under docs/brand/LICENSE-brand.txt. Forks and modified versions must remove them.

Adobe, Photoshop, Illustrator, Premiere Pro, Lightroom, Acrobat, After Effects and InDesign are trademarks or registered trademarks of Adobe Inc. in the United States and/or other countries. DesignCraft is an independent, open-source project and is not affiliated with, sponsored by or endorsed by Adobe Inc.; these names are used only to describe the workflows it is compatible with.


ArtCraft
Made by the ArtCraft team and community.

About

No description, website, or topics provided.

Resources

Stars

260 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages