How to Build and Run ArtCraft from Source
ArtCraft is a Rust and Tauri app. Running it from source is the only way to use the desktop app on Linux, and the starting point for contributing.
By ArtCraft Tips Editorial TeamLast updated 3 min read
ArtCraft is open source under the MIT or Apache-2.0 license, so anyone can read, run, and modify the code. Running it from source is how Linux users get the desktop app today, and it is the first step if you want to contribute a fix or feature. This guide follows the official development setup in the storytold/artcraft repository.
Just want to use ArtCraft?
On macOS and Windows, the prebuilt installers are much easier. See the download guide. On any platform, the web app at app.getartcraft.com needs no installation.
What the app is made of
ArtCraft is a Rust and Tauri desktop app. Tauri pairs a Rust backend with a web frontend rendered in the operating system's own webview. In ArtCraft:
- the frontend is a React app built with Vite and Nx, under
frontend/, - the backend is a Rust workspace, communicating with the frontend through Tauri's native IPC,
- a local SQLite database stores desktop tasks, with migrations in
_database/sql/artcraft_migrations/.
Backend services and website builds live in a separate artcraft-services repository, so this repo is all you need for the desktop app.
Prerequisites
| Tool | Version | Notes |
|---|---|---|
| Rust | Stable, via rustup | Install from rust-lang.org |
| Node.js | 20 or newer | The official guide notes v24.13.0 works; npm or nvm are both fine |
| Tauri CLI | 2.x | The guide notes tauri-cli 2.10.0 works |
| Git | Any recent version | To clone the repository |
You don't need a global Nx install; the launcher installs frontend dependencies locally.
Linux only: Tauri needs system libraries, most importantly WebKitGTK. Follow the Tauri prerequisites for Linux for your distribution before you start.
Run ArtCraft on macOS or Linux
Install the prerequisites
Install Rust with rustup, Node.js 20+, and the Tauri CLI. On Linux, install the Tauri system dependencies as well.
Clone the repository
git clone https://github.com/storytold/artcraft.git cd artcraftStart the combined launcher
./script/artcraft/unix_dev.shThe launcher installs the frontend dependencies if needed, starts Vite, and then starts the Tauri app pointed at it.
Wait for the first build
The first run compiles the whole Rust workspace, which can take a while. Later runs are much faster.
To start the port search somewhere other than 5193:
ARTCRAFT_DEV_PORT=6200 ./script/artcraft/unix_dev.sh
The launcher only uses free ports and never stops other processes. Press Ctrl-C to stop the frontend, the Rust watcher, and the desktop app together.
Run ArtCraft on Windows
Windows uses two PowerShell scripts, one for the frontend and one for the Rust app. Run each in its own terminal:
# Terminal 1: frontend dev server
.\script\artcraft\windows_frontend_dev.ps1
# Terminal 2: Tauri Rust application
.\script\artcraft\windows_rust_dev.ps1
How live reload works
The dev setup reloads automatically as you edit:
| You change… | What happens |
|---|---|
| JavaScript, TypeScript, React, or CSS | Vite hot reload; compatible React edits keep component state |
| Rust code | cargo tauri dev rebuilds and restarts the app; unsaved in-memory state is lost |
| SQLx metadata or SQLite migrations | Watched and rebuilt like Rust code |
Useful commands for contributors
Check the Rust code without a database server:
SQLX_OFFLINE=true cargo check -p artcraft
Test the Unix launcher without compiling Rust or opening a window:
node --test frontend/scripts/unix-dev.test.mjs
Troubleshooting
- Rust compile errors on Linux usually mean a missing system library. Re-check the Tauri prerequisites for your distribution.
- The window opens but shows a blank page. Make sure the frontend server started; the launcher prints the port it chose.
- Login or media loading breaks after changing ports. The official repo includes desktop session regression checks for exactly this case; see
docs/desktop-session-regression.md. - Builds wait for a long time. Concurrent Rust builds share Cargo's build lock, so a second build waits for the first one to finish.
Heads up
Running from source starts ArtCraft in development mode, using your normal ArtCraft app data. It is not an isolated test profile, so be careful when experimenting with an account you use for real work.
Contributing
Before you open a pull request, read the roadmap to see where the project is heading, and check open issues on GitHub. The team's stated goals include adding more models and providers, purpose-specific tools such as relighting and reposing, and reducing the app's dependence on hosted services.
Frequently asked questions
Is there an ArtCraft download for Linux?
There is no prebuilt Linux package at the time of writing. Linux users can run ArtCraft from source using the official developer setup, or use the web app at app.getartcraft.com in a browser.
What do I need to build ArtCraft?
Rust, Node.js 20 or newer (the official guide notes v24.13.0 works), and Tauri CLI 2.x (tauri-cli 2.10.0 works at the time of writing). On Linux, you also need Tauri's system dependencies such as WebKitGTK.
Which port does the ArtCraft dev server use?
The Unix launcher binds Vite to 127.0.0.1 starting at port 5193 and tries the next port until one is free. Set ARTCRAFT_DEV_PORT to start the search somewhere else.