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 agentsllms.txt, the @craft-ng/mcp server, and the Agent Skills.