Skip to content

Learn @craft-ng

This is the guided path. You build one app, from an empty component to a routed, tested feature — adding exactly one idea per step.

If you are looking for a specific answer instead, go to the Guide (organised by task) or search.

What you will build

A task list. It starts as three lines in a component and ends up with server data, optimistic updates, URL state, a validated form, a typed route and tests.

StepWhat you add
1. Your first statecraftComponent, state
2. Derive instead of duplicatecomputed + methods
3. Move logic out of the componentcraftService
4. Compose servicesgenerators, yield*
5. Load server dataquery
6. Write server datamutation, optimistic updates
7. Put state in the URLqueryParams
8. Build a forminsertForm, validators
9. Wire up routingcraftRoute, compile-time DI check
10. Test what you wrotetesting by register

Then: Where to go next.

Wondering what this buys you over plain Angular?

What craft adds to Angular is the inventory — including what it costs.

Before you start

You need an Angular 21 application and Node.js 20.19+ (or 22.12+). No prior knowledge of generators, RxJS or signals internals is required — each is introduced when it first earns its place.

Read in order

Every step builds on the previous one's code. Skipping ahead works, but step 4 is where the mental model clicks — don't skip that one.

Experimental

@craft-ng and this documentation are both experimental. APIs can still move between minor versions.