GroupSpec.makeNode() (rather than GroupSpec.make()); that marks the group as Node-runtime, and Confect adds Convex’s "use node" directive to the generated module accordingly. A node action group is otherwise an ordinary group—the same colocated .spec.ts/.impl.ts files, following the same naming and nesting conventions.
Node Spec
A node spec usesGroupSpec.makeNode() and one of FunctionSpec.publicNodeAction() or FunctionSpec.internalNodeAction() to define functions.
confect/email.spec.ts
Node Impl
A node impl default-imports its sibling spec and passes the database schema from_generated/schema to FunctionImpl.make and GroupImpl.make—exactly like a non-node impl; only the spec differs (GroupSpec.makeNode()). Each handler runs in the Node.js runtime, so it has access to NodeServices from the @effect/platform-node package (filesystem, path, child processes, and more).
confect/email.impl.ts
Calling Node Actions
Node actions are referenced like any other function. A node group atconfect/email.spec.ts is reached at refs.public.email.