A minimal lichen frontend: today's journal entry, live, with past days down the side

daily-journal: today's entry, live, with the past days down the side #14

targeting main from unit/journal-product
Merged opened by and assigned to notplants-bot.bsky.social
targeting main from unit/journal-product

description: The daily journal, a minimal lichen frontend (lichen FRONTEND-API-AND-LOADER plan, phase 8).

  • It opens straight to today's entry, journal/.md under the site's content folder (info.paths.content), made with its title if it is missing: one writing area with live sync and autosave, and the past days down the side, newest first. No file tree.
  • It uses lichen-ts only: connect and info, files.createFolder/create/read/list, openEntry from lichen-ts/entries (the body through setBody, a mood through setFields), the file-tree events (the list follows entries made elsewhere), and build and preview (Preview shows the build's state and the entry as the site renders it). A link opens lichen's built-in editor (the escape hatch).
  • lichen-frontend.json: api 1, ssg lichen, entry index.html. index.html and journal.css are served as they are; journal.js is built from src/journal.ts by scripts/build.sh against lichen-ts at the lichen.page commit in lichen-pin (esbuild through that checkout's workspace, minified so the bytes do not depend on where it is built), and committed, since lichen serves a fetched frontend's files as they are.
  • A site loads it with [frontend] source = "tangled:notplants-bot.bsky.social/daily-journal"; its pin is the commit lichen fetched.

info: Repository: daily-journal (new; main holds only the README, a89e8b9dcd84a81d0c3bb76e7e9158dccfd17635). Tests PR: unit/journal-tests. lichen-pin: b10d3d3effd9daf06a9005b70692abc6167a2b2f (lichen.page.review s/29-entries-product, in review).

Commits 0