// business operating system

The operating system your business runs on.

A versioned workspace for your whole company. Bring your own apps. Bring your own execution engines. Install the rest from the marketplace.

image-viewer smart-editor
/ WORKSPACE
assets
hero.png
chart.png
report.md
data.json
analysis.py
hero.png · v4 · mainimage-viewer
image render
VERSIONED WORKSPACE·SANDBOXED APPS·BROWSER & SERVER ENGINES·OIDC / JWKS IDENTITYBuilt on Nuxt + @verentis/sdk
// bring your own apps

Any app you can build mounts in the workspace.

Apps are Nuxt apps that run in a sandboxed iframe, bound to file types by a manifest. They read and write nodes through the SDK — nothing else to wire up.

Image Viewer

Opens common image formats inline, right inside the workspace.

image/png · image/jpeg
mode view
Smart Editor

Monaco-powered editing for JSON, YAML, Python, JavaScript and more.

application/json · text/*
mode edit
+
Bring your own app

Start from the application template, wire up @verentis/sdk, and ship a manifest. Any MIME type, any UI.

Use the template →
// bring your own engines

Run scripts on engines you control.

An engine is a container that runs a program against the workspace. The Python engine is production-ready — run scripts server-side in Docker, or instantly in the browser via Pyodide. A Node.js engine for JavaScript & TypeScript ships the same way. Verentis is engine-agnostic: give it a manifest and it orchestrates the rest.

Python 3.12 Node.js · JS/TS
FIRST-PARTY ENGINES · MORE ON THE WAY
runtime: autobrowser · pyodideserver · dockerPEP 723 deps
analysis.py
# /// script
# dependencies = ["requests"]
# ///
import requests
from verentis import engine

ctx = engine.context.input
res = requests.get(ctx.parameters["url"])

engine.output.ok({ "status": res.status_code })
$ verentis run analysis.py → result.json · 200
// how it works

A workspace, manifests, and somewhere to run.

01 / WORKSPACE
Spin up a versioned workspace

Every file is a node — branched, journaled, content-addressed and written idempotently. Your whole company's content behind one path-based API.

02 / MANIFEST
Bind apps & engines

Drop in a manifest. Declare the MIME types an app opens, its capabilities and permissions — or the runtime and dependencies an engine needs.

03 / RUN
Run it anywhere

Apps mount in a sandboxed iframe and talk to the host over postMessage. Engines run in-browser via Pyodide, or server-side in Docker. Identity is handled.

// the platform underneath

Four services do the heavy lifting.

Apps and engines are the surface. Underneath, a small set of services turns external identity into versioned, governed content.

01
Node

Versioned file & content system — branching, journals, sharding, idempotent writes.

02
Security

Internal identity & tokens — roles, grants, OIDC discovery, JWKS, per-scope access.

03
Fabric

Service registry & scope catalog — discovery, and the source of truth for permissions.

04
Workspace

Tenant workspaces — created on activation and registered with Security.

// marketplace

Publish once. Install anywhere.

Developers publish apps and engines to the marketplace. Businesses install them into a workspace in one click — versioned, permissioned, ready to run.

APP
Image Viewer

View images inline.

verentis Install
APP
Smart Editor

Monaco for code & data.

verentis Install
py
ENGINE
Python 3.12

Browser & server runtime.

verentis Install
ts
ENGINE
Node.js

JavaScript & TypeScript runtime.

verentis Install
+
YOURS
Publish your own

App or engine, your listing.

Get started →
FOR DEVELOPERS
Ship your app or engine to every Verentis workspace.
Publish to the marketplace →
// for developers

One SDK. One manifest. Done.

Start from a template and install @verentis/sdk. The useVerentis() composable auto-detects its environment — workspace iframe or standalone — so the same code runs in dev and in production.

  • 01 Nuxt 4 templates for apps and engines
  • 02 Read & write nodes through the typed SDK
  • 03 Declare permissions & sandbox in the manifest
api-version: verentis.io/v1
kind: Application
metadata:
  name: smart-editor
  display-name: Smart Editor
  icon: lucide:file-pen
  version: 0.1.0
spec:
  entry: https://smart-editor.app
  mime-types:
    - pattern: "application/json"
      mode: edit
  capabilities: [files]
  permissions:
    - node.file.read
    - node.file.write
  sandbox:
    allow-scripts: true
    allow-same-origin: false
// get started

Run your business on an OS you can extend.

Bring your apps. Bring your engines. Or start from the marketplace and make Verentis your own.