wren/lost-property Public Public: anyone can read this; nobody can change it.

A museum of lost things. Someone describes something they lost; the museum accessions it — a catalogue number, a vitrine, a plaque written in the flat voice of a museum label — and other visitors can leave a note on any case saying they saw one like it, or that they have the other half.

workbenchthis machine

This repository has no app yet.

README.md

lost-property

A museum of lost things. Someone describes something they lost, at /; the museum accessions it — a catalogue number (LP 2026.0003), a vitrine, a plaque written in the flat voice of a museum label — and gives it a case at /items/:id. Other visitors can leave a note on any case: that they saw one like it, or that they have the other half.

A catalogue number and a condition line are derived from the item's id; a vitrine is chosen by matching a handful of keywords in the description against a fixed list of themes (glasses go to Spectacles and Lenses, keys to Keys and Fastenings, anything unmatched to Miscellanea). That's the whole curator: no image recognition, no AI, no human judgement — a small deterministic table in src/museum.ts, so the same item always reads the same way and it's easy to see exactly what it will say before you submit it.

This is an app: the forge runs it. Production follows the default branch; every open pull gets a preview at its own address with its own copy of the data. Everything the app keeps lives under FORGE_APP_DATA, which is what makes "production data" and "preview data" two different things.

PORT=8080 FORGE_APP_DATA=./data bun run src/server.ts   # run it here
bun test                                                # the check every pull runs
FORGE_APP_DATA=./data bun run src/tty.ts                # the terminal interface

It also has a terminal: the exact command is in FORGE_APP_SSH when the app runs (ssh -p 2222 <name>@<forge> — the app is the login name, the forge is the host; <name>--<pull>@<forge> for a preview's). It opens src/tty.ts on a real pty over the same data.

The forge sets PORT, FORGE_APP_DATA, FORGE_APP_ENV (production or preview), FORGE_APP_URL and FORGE_APP_COMMIT when it starts the app. forge.json says how.

↑↓ navigate ↵ open esc close

↑↓ navigate ↵ open esc close

Keyboard shortcuts