Prerequisites
Prerequisites & setup
The tools, accounts, and access you need before you build an app or execution engine.
You don't need the Verentis platform source to build extensions — you build against the public APIs and manifests. Here's what to have ready.
You'll need
A Verentis workspaceSomewhere to install and test your extension. Any workspace you can add files to works — your extension is installed by placing its manifest in that workspace's file system.
A way to authenticateAn API key for standalone development, or an app OAuth client for the in-product runtime. See Authentication.
Node.js 22+For building apps (and using the TypeScript SDK). Any modern front-end toolchain works; the app is just a web page served over HTTPS.
The Verentis CLInpm install -g @verentis/cli — packs, signs and publishes your extension to the marketplace
(verentis pack / verentis publish). See Publishing.
DockerFor building execution engines that use the Docker runtime. Not needed for browser/WASM engines.
The two development stories
Verentis supports two ways to develop, so you can iterate quickly and then ship:
Standalone (developer story)
Run your app or engine outside the platform and authenticate with an API key. You get fast local iteration with full access to the platform APIs, without installing anything into a workspace.
In-product (runtime story)
Install the manifest into a workspace. Your app runs in a sandboxed iframe and receives short-lived, injected tokens through the SDK bridge; your engine runs in a sandboxed runtime with a scoped token minted for the run. This is how customers experience your extension.
Develop standalone, ship as a manifest
Start with the standalone story for speed, then add your manifest and switch to injected tokens. The SDK exposes the same API surface either way, so very little code changes.
Know your environment's URLs
Every Verentis environment exposes the same subdomain scheme. For local development with the Aspire AppHost running, these are:
| Surface | Local URL |
|---|---|
| API gateway | https://api.localtest.me:6500 |
| Account app | https://account.localtest.me:3000 |
| Workspace app | https://{workspace}.localtest.me:3200 |
| Marketplace | https://marketplace.localtest.me:3400 |
| Developer docs (this site) | https://developer.localtest.me:3700 |
In a deployed environment, replace localtest.me[:port] with the environment domain (for example
api.sprint-1.verentis.dev or api.nz.verentis.io). All API calls go through the api.<domain>
gateway.
Next
Register a minimal extension in a workspace and see it resolve.