Skip to content

Where to go next ​

You have the whole mental model: declare with a name, yield what you do not own, derive the rest. Everything below is a variation on it.

Fill the gaps in what you built ​

You haveNext thing worth adding
A query and a mutationPersistence — storage persistence as an insertion (localStorage by default)
A listCollections — entity storage, selectors, updates
A formValidation — custom and async validators
RoutesRoute guards and Route providers
A running appNon-blocking navigation — pending UI instead of a freeze

Concepts worth a dedicated read ​

Teach the app its boundaries ​

The graph you just tested is also a map you can constrain. Architecture rules are ordinary Vitest assertions on the static Craft graph: unique identities, unique HTTP, pure craftComputed, folder lanes, exclusive feature branches — and any neighbourhood you can look up is a rule you can write. Nx still owns the workspace graph (imports, affected, cache); Craft judges the app. Craft graph vs Nx is the split.

Setup is in that guide. The demo suite already runs them:

shell
npx nx architecture demo

When your app grows ​

Reference ​

Looking for one symbol? The API index lists every export with a one-line description and a link.

See it running ​

Examples points at the demo application, which exercises most of the above end to end.

Importing Craft into an app that an agent will edit? Point it at coding agents — llms.txt, the @craft-ts/mcp server, and the Agent Skills.