Learn / Foldkit Plus
Which package do I need?
If a term below is new, the glossary defines each one in a line.
| You want to… | Reach for | Read |
|---|---|---|
| Let an LLM or another agent use the app, safely, over MCP, WebMCP, A2A, or Agent Native | foldkit-agent + one adapter | Agents |
| Cache server entities once, know what is missing, mutate optimistically, get live updates | foldkit-remote (+ -server, -drizzle on the server) | Server-derived state |
| Work offline, on several devices, or with other people, and converge | foldkit-sync on the client, foldkit-durable on the server | Replicated state |
| Edit rows a server owns offline, with the table kept as the journal's read model | foldkit-sync/entity and foldkit-sync/journal, over foldkit-remote | Editing server data |
| Keep the filter and page in the URL, remember a draft or a preference | foldkit-mirror | Mirrored state |
| Declare where the application is: route nodes, typed targets, titles, history intent | foldkit-site (experimental, 0.1.0) | package README |
| Package a Submodel once and place it several times, or once per key, with every part wired | foldkit-bundle (+ -surface for Module ownership) | package README |
| Reach for everyday browser primitives instead of hand-wiring them: media queries, timers, sockets, device state, observers, clipboard, one in-browser server for every tab | foldkit-primitives | package README |
Restyle or add behaviour to views, including @foldkit/ui, without copying markup | foldkit-mixins (+ -surface, -ui) | View composition |
| Use a React component in a Foldkit view, or embed a Foldkit program in a React app | foldkit-react | package README |
| Compile Foldkit views to React TSX source | foldkit-react-codegen | package README |
| Say what a feature observes and may cause, and check that nothing owns a field twice | foldkit-surface | package README |
| Declare a domain once (fields, relations, selections) for the client cache, the database binding, and forms to share | foldkit-entity | One domain declaration |
| Say once who may read and write what, and have every read, write, Sync edit and agent capability enforce it | foldkit-guard | package README |
| Build a form from the input an operation accepts, with validation and a decoded value handed to the parent | foldkit-form (+ foldkit-mixins-form to draw it) | package README |
| Join a form, a Remote mutation or query, and their Entity into an edit screen or a list | foldkit-crud (+ foldkit-mixins-crud to draw lists and details) | package README |
| Edit an interactive grid over rows the application owns: keyboard focus, ranges, typed editors, copy and paste, fill, 100,000 rows virtualized | foldkit-data-grid (+ foldkit-mixins-data-grid to draw it; experimental, 0.1.0) | package README |
Render on the server and hand the Model over, rather than rerunning init: resumable pages, forms without scripts | foldkit-ssr | package README |
| Give content drafts, revisions, a schedule, and a published/unpublished boundary, without a status column | foldkit-cms + foldkit-cms-drizzle (the editor's state and the server) | package README |
| Edit rich text: a semantic document in the Model, an editor on the page, Markdown in and out | foldkit-richtext + foldkit-richtext-dom (+ -markdown, -code or -code-shiki for highlighted code, and foldkit-mixins-richtext to draw the chrome) | package README |
| Store a page as Blocks in Regions, checked against a Catalog of what may exist | foldkit-composition (experimental, 0.1.0) | package README |
| Edit such a page with a selection and undo, as one key of a form | foldkit-builder (+ foldkit-mixins-builder to draw it; experimental, 0.1.0) | package README |
foldkit-surface is the shared semantic seam for Agent, Remote, Sync, Mirror,
and the Surface/Mixins bridge. It is not a mandatory base class for the whole
repository: foldkit-durable, core foldkit-mixins, and the protocol/UI
adapters can stand on their own and meet Surface-backed packages at explicit
boundaries.