Service live

NodeBuilder

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.

Why this works

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.

How it works

01 — DEFINE

Write the JSON

One document describes the package, the node, its auth, and its resources and operations.

02 — VALIDATE

Catch mistakes early

Errors and warnings come back as a structured list with a path to each problem.

03 — BUILD

Emit a real package

A complete npm package — roughly six files — ready to pack into a tarball.

04 — PUBLISH

Install it in n8n

Goes to npm, then installs through n8n's standard Settings › Community Nodes dialog.

HTTP API

Base URL https://api.nodebuilder.io — all routes accept and return JSON. Request bodies are capped at 1 MB.

MethodPathReturns
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":{ }}'

Status

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.