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 forRead
Let an LLM or another agent use the app, safely, over MCP, WebMCP, A2A, or Agent Nativefoldkit-agent + one adapterAgents
Cache server entities once, know what is missing, mutate optimistically, get live updatesfoldkit-remote (+ -server, -drizzle on the server)Server-derived state
Work offline, on several devices, or with other people, and convergefoldkit-sync on the client, foldkit-durable on the serverReplicated state
Edit rows a server owns offline, with the table kept as the journal's read modelfoldkit-sync/entity and foldkit-sync/journal, over foldkit-remoteEditing server data
Keep the filter and page in the URL, remember a draft or a preferencefoldkit-mirrorMirrored state
Declare where the application is: route nodes, typed targets, titles, history intentfoldkit-site (experimental, 0.1.0)package README
Package a Submodel once and place it several times, or once per key, with every part wiredfoldkit-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 tabfoldkit-primitivespackage README
Restyle or add behaviour to views, including @foldkit/ui, without copying markupfoldkit-mixins (+ -surface, -ui)View composition
Use a React component in a Foldkit view, or embed a Foldkit program in a React appfoldkit-reactpackage README
Compile Foldkit views to React TSX sourcefoldkit-react-codegenpackage README
Say what a feature observes and may cause, and check that nothing owns a field twicefoldkit-surfacepackage README
Declare a domain once (fields, relations, selections) for the client cache, the database binding, and forms to sharefoldkit-entityOne domain declaration
Say once who may read and write what, and have every read, write, Sync edit and agent capability enforce itfoldkit-guardpackage README
Build a form from the input an operation accepts, with validation and a decoded value handed to the parentfoldkit-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 listfoldkit-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 virtualizedfoldkit-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 scriptsfoldkit-ssrpackage README
Give content drafts, revisions, a schedule, and a published/unpublished boundary, without a status columnfoldkit-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 outfoldkit-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 existfoldkit-composition (experimental, 0.1.0)package README
Edit such a page with a selection and undo, as one key of a formfoldkit-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.