An open-source editor for Arabic calligraphy. Type a phrase, pick the shape of every letter, stretch joins with kashida, move, scale and slant letters, and export vector artwork. The same engine runs in the browser and in the desktop app.

.midad file is the text
plus the calligrapher’s choices. Edit the text and your choices follow.style.toml that
calligraphers can edit: options, kashida rules, alternates.# prerequisites: Rust (stable), Node 20+, wasm-bindgen-cli 0.2.129
cargo install wasm-bindgen-cli --version 0.2.129 --locked
npm ci
npm run build:wasm
npm run dev # → http://localhost:5173
Desktop: npm run desktop:dev (needs the Tauri prerequisites).
Command line:
cargo run -p midad-cli -- render -s styles/naskh-amiri -t "بسم الله الرحمن الرحيم" -o basmala.svg
| Path | |
|---|---|
crates/midad-core |
The engine (Rust): shaping, alternates, kashida, documents, SVG export |
crates/midad-wasm |
WebAssembly bindings |
crates/midad-cli |
midad command-line tool |
apps/web |
Editor UI (React + TypeScript + Vite) |
apps/desktop |
Desktop app (Tauri 2) |
styles/ |
Style packages (naskh-amiri) |
tools/ |
Style compiler (Python + fontTools) |
docs/ |
Documentation |
style.toml reference, adding a style.midad filestyles/: SIL Open Font License 1.1 (see each style’s OFL.txt).
The Naskh style is built on Amiri by
Khaled Hosny and Sebastian Kosch.