VaporIn Development

Vapor

In Development

DOSS app builder platform. Composable, generatable applications from ZSL declarations.

DRI: Wiley Jones
Overview

Vapor takes a ZSL declaration of an application and generates the running user-facing applet: data model, forms, dashboards, API endpoints, workflow triggers, validations, and agent harnesses. The data model is rigid; the applet is disposable. Re-generate any time ZSL changes.

What gets generated

One ZSL → full applet

Data model

Typed GraphQL schema and client over the DOSS API. Queries and mutations match the ZSL Projections and Workflows.

Forms and detail views

Auto-generated from schema + validation rules. Context-aware defaults — a date column gets a date picker, an enum gets a dropdown, a lookup gets a relationship chip.

Dashboards

Layouts composed from json-render primitives. Driven by Projections; editable by both humans and agents.

API endpoints

GraphQL over HTTPS. Admin and App surfaces with separate tokens; tenant scoping baked in.

Workflow triggers

UI buttons and automations wire directly into ZFlow durable executions.

Agent harnesses

Each applet ships with a `/api/chat` endpoint that streams Claude responses with json-render specs. The agent and the human both edit the same applet.

Stack

Vite 6Dev server and build tool.
React 19Applet runtime.
TypeScript strictNo `any`, no DSL — plain typed code.
json-render`@json-render/core` + `@json-render/react` for generative UI.
Vercel AI SDK`ai` + `@ai-sdk/anthropic` for Claude streaming.
Tailwind v4 + GeistDark-native design system, single source of style tokens.
Surfaces

Three shared packages, N applets

  1. 01

    @doss-vapor/client

    Typed DOSS GraphQL client. Universal (Node + browser). Handles admin and app tokens transparently.

  2. 02

    @doss-vapor/tools

    Vercel AI SDK tool definitions for agents. Server-only. What the `/api/chat` endpoint registers.

  3. 03

    @doss-vapor/vapor

    React hooks (`useTable`, `useRows`), json-render catalog, theme. Browser-only. What applets import.

In the stack