技能潮 SkillTide 提交收录
官方说明开源项目7 天前
doeixd/foldkit-plus

doeixd/foldkit-plus

Foldkit Plus: packages for Foldkit apps. Server data (Remote), local-first sync, routing (Site), SSR, forms, CRUD, a CMS, rich text, a page builder, and AI agents over MCP and WebMCP.
在 GitHub 查看 ↗直链 · 无中转页
★ 数取值
23 ★ · doeixd/foldkit-plus · 取自该仓库的 GitHub 页面 · (2026-10-16 20:00:20 核对)
来源明细
从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
收录与活跃
收录于 2026-10-10 · 最近见到 2026-10-10 · 共见到 3 次 · 被 1 个来源列出
评分构成
综合分 103 · 23 ★ · 1 个来源 · repo
安装
npx foldkit-plus
常见问题(答案都来自我们的记录)
怎么安装?
该仓库给出的安装命令是 npx foldkit-plus。我们的记录里它是仓库自己提供的;不保证在你的客户端上直接可用。
它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库 doeixd/foldkit-plus;我们收录于 2026-10-10;最近见到 2026-10-10。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。
第三方质量标记

foldkit-plus

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

> Packages that extend a Foldkit application
> outward — to agents, servers, other devices, the URL, and design systems —
> without giving it a second place to keep state.
A Foldkit application is one state machine: a Schema-typed **Model**, a
**Message** union naming everything that can happen, and one pure **update**
function that turns a Message into the next Model and some Commands. That shape
is easy to reason about, test, and replay. It gets lost the moment an app grows a
cache in a hook, a store in the URL, a tool handler that re-implements a
transition, or a sync layer with its own reducer.
Everything in this repository keeps the one state machine. An agent can only
send Messages update already handles. Server data lives in the Model and is
reconciled by update. Replicas replay the same Messages through the same
update. The URL and local storage mirror a slice of the Model; they never own
one. Views are styled from outside without forking. Each package answers one
question, and they compose because they meet at explicit application boundaries.
**The website:** foldkit-plus.pages.dev
has each package's guides and API reference, and the demos, each an example
from this repository built as static files. Those with a server run it in your
browser, shared by every tab, so nothing you do leaves it:
- A blog studio and its site (examples/cms): Drafts beside the row, revisions, scheduled publishing and a page builder, with the public site rendered at build time.
- Two devices, one registry (examples/registry): Two devices edit 10,000 products in a data grid, offline and in conflict, and agree once both are back.
- Pages two tabs edit at once (examples/pages): Rich text two people edit at the same time, online or not, converging through one journal.
- A rich text playground (examples/richtext-playground): One document with movable blocks, anchored discussions, images, tables, code, toggles and footnotes, every edit a transition of the Model.
- A todo list an agent can use (examples/todo-app): One application definition drives the view, the tools an agent calls, the document replicas share, and the policy the server enforces.
- A data grid over 100,000 rows (examples/data-grid): A grid that owns focus, selection, columns and the open editor, while the application owns every row.
- Eight widgets from shared primitives (examples/widgets): Once the capabilities exist, a family of widgets gets cheap: each one is a Bundle placement plus Behaviors on a shared Collection description, with no bespoke state machine.
Choose who owns the state
| What you are adding | Authoritative owner | Extension |
| --- | --- | --- |
| Local UI state or a reusable widget | Parent Model and its update/child update | Bundle, Primitives |
| Facts loaded from a server | Server; the client cache is disposable | Remote |
| Offline edits that must converge | Client-authored operations in an authoritative journal order | Sync + Durable |
| Offline edits to rows a server owns | The journal; the table is its read model | Sync (/entity, /journal) + Remote |
| An interactive grid over the application's rows | The grid's Bundle for focus, selection and columns; the rows stay the application's | Data grid |
| A URL or remembered preference | Local Model; the external value is a representation | Mirror |
| Agent access or a customizable view | Existing state and transitions | Agent, Surface, Mixins |
A Surface can observe several owners. Observing a field does not grant a second
package permission to change it outside its owning transition.
Sixty seconds of code
Start with one mechanism: an inspectable boundary around an existing Model.
The fastest way to see how the packages compose is to watch several of them
reuse one application declaration. Assume Model, Message, initial, and
update are an ordinary Foldkit todo app you already wrote. Everything around
them derives from the same state machine; none of it introduces a second
reducer.
The code is large because the point is composition, not because any one package
requires all of it.
1. **The application stays the center.** Model, Message, update, Commands,
来源
github · https://github.com/doeixd/foldkit-plus
按领域浏览
开源项目
Traction
23 ★
收录于
7 天前

更多开源项目

查看开源项目全部 731 条 →

所属领域与标签

每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。

浏览全部领域 →

← 返回索引