Skip to content

Repository files navigation

Life in Days

A private, single-user visual memory archive of journal entries and photos, organized as a calendar.

This repo was reset to a clean slate on 2026-08-20. The prior effort (58-task governance roadmap, multi-agent coordination control plane) is preserved at the archive/generation-0 branch and gen0-final tag — see RESET-DECISION.md for why.

Status

Milestones M1–M3 are implemented and runnable: the Calendar with its Museum Margin, the Journal Day page, and Daily Photos with reordering. Everything runs locally as one process serving HTML from one SQLite file. Nothing is deployed, and there is no authentication — the server binds to 127.0.0.1 only.

Phase 1.5 planning, work tickets, and the UI prototypes are described in HANDOVER-PHASE-1.5.md.

Running it locally

Requires Node 22 LTS. From a fresh clone:

npm install          # better-sqlite3 and sharp compile here; give it a minute
npm run migrate      # creates data/archive.sqlite
npm run seed         # invented journals + generated photos, so there is something to look at
npm run dev

Then open http://127.0.0.1:3000/calendar.

The seed is idempotent — run it twice and the second run reports every file as a duplicate, because ingest deduplicates by content hash.

To load your own files instead, point ingest at a directory:

npm run ingest -- ~/some/inbox

Nothing in that directory is moved, renamed, or deleted; ingest only ever copies.

Other commands:

npm test             # node:test, no watch mode, no CI
npm run typecheck    # tsc --noEmit, strict
npm run build        # tsc + copy static assets to dist/src/
npm start            # run the built output instead of tsx

LID_PORT overrides the port, LID_LOG_LEVEL the log level. Both default to 3000 and info.

data/ holds the database and the media archive. It is gitignored and never committed — see the privacy boundary in CLAUDE.md.

Doing UI work here

Read UI-DESIGN-INSTRUCTIONS.md first. Binding instructions for any agent touching frontend or UX.

Reference material

reference/ holds notes salvaged from the archived effort — domain glossary, product requirements, UX spec, a static v10 prototype, and Hetzner deployment research. Background reading, not a spec to satisfy.

Rules

See CLAUDE.md.

About

Planning documents and synthetic static UI prototypes for Life in Days, a private single-user visual memory archive.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages