CMS / foldkit-cms

Mental model

A draft is an unsent form. The content row holds what is published. A draft is what an author has entered and not sent: the input of the operation that would publish it, saved. So publishing is your own mutation, run with the draft's value; a visitor's read cannot reach unfinished work, because it never touches drafts; a revision is the same value, kept; and a half-filled form that does not validate can be saved, which a row with a not null title cannot hold.

   Entry ── Draft ── publish ──> your own mutation ──> content row ──> a visitor's read
     └── Revision  <── appended ──┘

An Entry is a piece of content from its first keystroke to its archive. It exists before the row does, and after the row is hidden.

Run the local example

From a checkout, run pnpm install, pnpm build, then pnpm --filter foldkit-example-cms demo. This is the reproducible path for the workspace version; use the package install below for a published version.

Install

sh
pnpm add effect foldkit foldkit-entity foldkit-form foldkit-crud foldkit-remote foldkit-cms