- Zig 94.4%
- Scheme 3.7%
- Shell 1.2%
- Python 0.5%
- Swift 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| examples | ||
| fonts | ||
| scripts | ||
| src | ||
| test | ||
| .devkit.conf | ||
| .gitattributes | ||
| .gitignore | ||
| build.zig | ||
| build.zig.zon | ||
| CLAUDE.md | ||
| context.md | ||
| DESIGN.md | ||
| LICENSE | ||
| README.md | ||
| RELEASING.md | ||
| reveal.svg | ||
| TODO.md | ||
A screenwriting editor — Fountain format, written in Zig with an immediate-mode GUI and Scheme scripting.
Status: in development, but usable for real work — it edits, paginates and
prints screenplays, reads and writes Final Draft .fdx, and ships as a macOS
app that updates itself.
Releases.
Install
zig build install-user -Doptimize=ReleaseFast # -> ~/Applications/Reveal.app
Or download a release. Updates are verified against a minisign signature and a pinned sha256 before anything is replaced.
Build
zig build # -> zig-out/bin/reveal
zig build run
zig build install test # build the exe AND run the tests
zig build bundle -Doptimize=ReleaseFast # -> zig-out/Reveal.app
Zig 0.16.0. Dependencies are sibling checkouts on dev, pinned url + hash
on main — see DESIGN.md "Branches".
Stack
| Concern | Library |
|---|---|
| Window + event loop | dvui-sokol |
| Immediate-mode GUI | dvui (our fork) |
| Document / text model | storykit |
| Fountain parse / serialize | zfountain |
Final Draft .fdx |
zfdx |
| PDF export | platen |
| Scripting + integration tests | zscheme |
The core is a bidirectional bridge between zfountain.Document and
storykit.Document: zfountain owns screenplay semantics, storykit owns the
editable text model, so structure survives editing instead of being re-inferred
on every keystroke. Everything that can be is a pure library module —
pagination, PDF layout, file detection, update verification — unit-testable
without a window.
DESIGN.md has the full design; RELEASING.md how a release is cut.
Examples
examples/ carries public-domain Fountain screenplays with reference PDFs:
Big Fish (also .fdx), Brick & Steel, The Last Birthday Card.
Fonts
src/fonts/ bundles Courier Prime (the page and every PDF), Courier Prime Sans
(alternative page face), Inter (UI chrome) and Noto Emoji (glyph fallback) — all
OFL 1.1, each with its licence, all @embedFiled. Nothing to install, and PDF
export needs no system fonts.
License
MIT — see LICENSE.