Define an n8n community node as a JSON document. Validate it, build it into a publishable npm package, and publish it — with no TypeScript, no build tooling, and no n8n installation on your side.
An n8n declarative node is data, not code. The node's entire behaviour lives in a JSON description: which fields the user sees, and where each field's value goes in the outgoing HTTP request. The only JavaScript required is a fixed four-line shim that hands that JSON to n8n — and that shim is byte-identical for every node. So nothing about authoring a node actually requires a compiler.
One document describes the package, the node, its auth, and its resources and operations.
Errors and warnings come back as a structured list with a path to each problem.
A complete npm package — roughly six files — ready to pack into a tarball.
Goes to npm, then installs through n8n's standard Settings › Community Nodes dialog.
Base URL https://api.nodebuilder.io — all routes accept and return JSON. Request bodies are capped at 1 MB.
| Method | Path | Returns |
|---|---|---|
| GET | /health | Liveness check. |
| POST | /validate | Errors and warnings for a definition. Returns 200 even when invalid, so a builder UI can render the issues. |
| POST | /build | The generated package as a map of filename to contents. |
| POST | /pack | An npm-compatible .tgz tarball. |
| POST | /publish | Publishes to npm. Dry-run by default — a real publish is irreversible. |
curl https://api.nodebuilder.io/health
curl -X POST https://api.nodebuilder.io/validate \
-H 'Content-Type: application/json' \
-d '{"nodesterVersion":1,"package":{ },"node":{ }}'
This is the backend core. A drag-and-drop builder UI will sit on top of it — the UI produces the JSON that this service consumes, so the two are developed independently.