> For the complete documentation index, see [llms.txt](https://doc.duaer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/integrations/creating-nodes/build.md).

# Build a Duaer node

Scaffold a project with the node CLI, write the node and its credential, lint and build it, then try it in Duaer.
## Pick a style

- Declarative: describe the HTTP request for each operation in the node description. Good for plain REST APIs. Duaer handles paired items for you.
- Programmatic: implement execute() yourself. Use it for data transforms, pagination, SDK calls, or several requests per item.

## Scaffold and build

1. Run the first command below, pick a template (declarative or programmatic), and name the package. The name must start with n8n-nodes-; Duaer installs only community packages named that way.
2. Write the node under nodes/ and its credential under credentials/.
3. Run npm run lint and fix every error.
4. Run npm run build. The output goes to dist/.

```
npm create @n8n/node@latest
cd <your-package>
npm run lint
npm run build
```

## Try it in Duaer

After you publish the package to npm, the owner or an admin of the Duaer instance installs it by name under Settings › Community nodes, then finds it in the node panel. Refer to [Publish a community node](/integrations/creating-nodes/deploy/submit-community-nodes.md).
## Questions

### Should a Duaer node be declarative or programmatic?

Use declarative for a Duaer node when the API is plain REST and each operation is one request. Use programmatic when you need data transforms, pagination, or an SDK.

## Related

- [Duaer node reference](https://doc.duaer.com/integrations/creating-nodes/build/reference.md)
- [Publish a Duaer community node](https://doc.duaer.com/integrations/creating-nodes/deploy/submit-community-nodes.md)
- [Create a custom node for Duaer](https://doc.duaer.com/integrations/creating-nodes.md)

