← The Remote Ledger

Colophon

Why a job tool built in 2026 is set like a Victorian broadsheet, and what each decision is actually for.

Last updated 7 September 2026


Situations Vacant

For most of the history of paid work, you found a job in the newspaper. The classified section, literally advertisements classified by category, ran columns headed Situations Vacant, and they came out on a schedule. People bought the early edition, went down the column with a pen, circled what looked possible, and moved quickly, because everyone else in town was holding the same page.

There was no algorithm and no feed. There was a page, a pen, and the fact that the roles were printed in the order they were sold, not in the order some system decided you deserved to see them.

Paid by the line

The thing worth stealing from that era is not the nostalgia. It is that classified advertising was charged by the line, so every word had to earn its place. What the job was, where, what it paid, how to apply. Nobody bought six lines to describe a fast-paced dynamic environment.

Scarcity made them honest. This has no such constraint. A language model will produce as many confident paragraphs as you ask for, including about jobs that do not exist, so the discipline has to be built in on purpose. A fit is one number. The fine-print is one line. A posting that could not be opened and verified does not get printed at all.

That is the actual link between the look and the software. The design carries the argument, in a different medium.

The type

Three families, each doing one job, in the way a print shop would have assigned them.

  • Fraunces sets the mastheads. It is a variable face with an optical-size axis, drawn in the spirit of the high-contrast display types cut for nineteenth-century newspapers, the ones that had to shout across a news-stand.
  • Spectral carries the reading. A serif designed for screens, not adapted to them, which is what a long column of body copy needs.
  • IBM Plex Mono does the ledger work: figures, labels, fine-print, status. Monospace because a column of numbers should line up, and because it is the voice of a record, not a headline.
  • All three are served from this server under the SIL Open Font License, not from a font CDN. See the privacy page for why that mattered enough to do.

Two colours, and no more

A small press ran black plus one spot colour, because a second plate cost money. So: ink on antique paper, and one red, Pressman's Vermillion, reserved for the things that genuinely need the eye. Category, emphasis, the live crawl dot, the rule under a masthead. When everything is highlighted nothing is, and a second plate is a decision you have to justify.

Nothing here has a rounded corner or a soft shadow. Letterpress has neither: type is pressed into paper, and what you get is a hard edge and an offset impression. The shadows on this page are flat and displaced for the same reason.

The marks in the corners

Those small crosses at the four corners of every page are registration marks. On a real press they align the plates so the black and the red land in the same place; a proof sheet carries them and the trimmed final copy does not. Leaving them visible is a small joke about the app being a proof of your job hunt instead of the finished thing, and a reminder that this is a document you are still working on.

Built in the open

Set in Fraunces, Spectral and IBM Plex Mono. Built with Astro, output as static files, served by nginx from a small server that also hosts a few other things. No client-side framework, no analytics, no cookies, no third-party requests.

The design system it borrows from is the application's own, documented as DESIGN.md in the repository. The site and the software are the same object, and they are meant to look it.

On this page
  1. Situations Vacant
  2. Paid by the line
  3. The type
  4. Two colours, and no more
  5. The marks in the corners
  6. Built in the open

Questions about any of this belong in the repository’s issues, in the open, where the answer is useful to the next person.

HomeColophonPrivacyTermsLicenceGitHub