stnd.build

Ingest · Develop · Print

400024

Insert a card.
Click nothing.

A few minutes later a folder appears on the desktop. Not the four thousand frames from the weekend — the twenty‑four best, chosen, developed, with a film rendering already applied.

It is what it was to pick up your envelope at the lab.

02 — The loop

You never saw your four thousand frames

You saw twenty‑four, in a paper sleeve you opened on the kitchen counter. The edit had already happened — in the camera, in the price of film, in only having thirty‑six chances.

Digital gave me unlimited latitude and took that away. Getting it back means the whole chain runs unasked: card detection, import, filing by capture date, culling, development, and a real folder in a real place.

  1. Detecta card is mounted
  2. FileYYYY/YY-MM-DD, original names
  3. Cullthe session narrows itself
  4. Developone consistent rendering
  5. Hand overa folder on the desktop

Most photo software is built to be opened. This one is built so you don't have to.

03 — The rule

The folder on disk is the source of truth

Not the application's database. That sentence was written in the README before the first line of code, and everything else follows from it.

Originals
Never modified. Not once, not on export.
Metadata
A standard .xmp beside each frame — readable by Lightroom, Capture One, darktable, immich, and by anything at all in fifteen years.
The index
Disposable. Delete it; it rebuilds from the folders.

If Reveal disappears tomorrow, the archive stays navigable in the Finder. The software was built so you could stop using it.

04 — The darkroom

A darkroom, written in Rust

The development engine does not simulate a contrast slider. It simulates the chain — and it speaks the chain's vocabulary:

It sounds like nostalgia. It isn't. A physical model doesn't do what you ask — it does what it does, and you learn it. Fifteen years of the job taught me to want exactly that.

Film and digital get separate engines, because they don't share a vocabulary. Forcing both into one interface produces a tool that lies to both.

05 — The room

Details a photographer won't forgive

The interface follows light

Light, dark, or system. Not a preference: the surround changes how you judge an image. Grading a dark frame against a white panel lies to you about contrast and density. A print is viewed on a neutral wall, not a red tablecloth.

Focus removes the rest

Blur, full desaturation, an even wash across every screen. Not for effect. At the two‑hundredth frame of an edit, what's left in peripheral vision decides what you can still see.

Invisible in a feature list. Exactly what decides whether a tool survives a whole evening.

06 — Where it stands

A personal project, in development

There is nothing to buy and nothing to sign up for. The Rust and Tauri rewrite is now the one I use every day — the Swift version it replaced is retired.

What's downloadable below is an alpha build: unsigned, Apple Silicon only, rough edges included. I don't get to hide behind a version number nobody sees.

This page exists so the work is visible, not so it can be sold.

Built with Standard. Rendering byspektrafilm‑rs.