← All work
Open-source contributor · Creative software

ArtCraft

Contributions to the Crafting Apps, open-source creative tools written in Rust. One shared library merged, more in review.

2026

Overview

The Crafting Apps are thirteen native, open-source creative tools from the ArtCraft team, each written from scratch in Rust. I contribute to the shared libraries underneath them. I don't build the apps or set the project's direction.

My role

Open-source contributor. One shared library merged, more in review.

The ecosystem

Image editing, vector illustration, video, photography, PDFs, motion graphics, page layout, interface design, word processing, audio, presentations, CAD and spreadsheets: each Crafting App is its own native program.

What they share lives in craft-libs, a set of Rust libraries any of the apps can take on: colour management, PDF handling, printing, settings and safe file writes.

My contribution

My work is in those shared libraries, plus one fix in PdfCraft. One piece has merged. The rest is open and in review, and each link goes to the pull request and its review.

  • craft-atomic: Safe saving. If a save fails or the app crashes, the document on disk is the old version or the new one, never a half-written file, on macOS, Windows and Unix. DesignCraft depends on it. The maintainers reviewed it and added fixes before it merged.
  • Compatibility runner: Tests a proposed change to a shared library against the real apps that use it, in throwaway worktrees, without touching their checkouts.
  • craft-time: Exact media time and SMPTE timecode, so video and audio timelines count frames and samples without rounding drift.
  • Colour transform cache: Bounds craft-cms's cache by size and evicts the least recently used transforms, instead of clearing everything.
  • Platform regression guards: Source checks that stop fixed platform bugs from coming back: a macOS quit item that skips the save prompt, a timer call that panics in the browser build, shader numbers out of range.
  • PdfCraft: incomplete reads: When a PDF is nested too deeply to read in full, safety limits skip part of the page. This carries that signal through rendering, text extraction, Find and redaction, so a partial read isn't treated as complete.

The engineering

Saving safely sounds simple until each operating system breaks it a different way. On Windows, antivirus scanners and search indexers lock a new file for a moment. On macOS, data is not really on the disk until a full flush.

craft-atomic writes the new file beside the old one, flushes it, swaps the two and flushes the directory, retrying briefly when Windows holds a lock. Its tests simulate a full disk, locked files and permission failures. What software tests can't prove, survival through a power cut, its documentation says plainly.