
Write Node.js code, ship npm-style
Each module is a folder with index.js, package.json and any npm dependencies you need. Edit files in your editor of choice — VS Code, Cursor, JetBrains — Afina watches and re-signs on demand.
Write your own Node.js modules with npm dependencies and call them from RPA flows through the executeModule block. Signed execution, isolated runtime, full reusability — the bridge between no-code automation and real engineering.

Most RPA flows live happily on the visual canvas. The hard 10% — custom API calls, niche libraries, complex data transforms — wants real code. Afina modules are full Node.js packages with npm dependencies, an Ed25519 signature for execution safety, and a clean form-based UI in the parent flow.

Each module is a folder with index.js, package.json and any npm dependencies you need. Edit files in your editor of choice — VS Code, Cursor, JetBrains — Afina watches and re-signs on demand.

A new executeModule block accepts the module hash + a form payload. Module function receives the args, talks to the browser through Afina's helpers, returns a value back to the flow. Native interop with the rest of the scripts-and-automation stack.

Bring your favourite packages — axios, cheerio, ethers, sharp, anything. Afina installs dependencies in the module folder; the runtime allowlist limits node API surface so a misbehaving module can't kill your machine. Ideal companion to the local API.

Every module has an Ed25519 signature over an md5 manifest of its files. The executor refuses to run an unsigned or stale module — protecting you from accidental corruption and supply-chain swaps. Combined with the MCP server, AI agents can author modules safely too.
Write a module, sign it, drop it into a flow — your code, signed and isolated, running on a real browser.