The agent-nativeframework.stack.ecosystem.compiler.runtime.devtool.
One schema derives your database, API, and UI. Fully typed end-to-end. Built for agents to write, humans to ship.
import { query, form } from 'vertz/ui';
import { api } from './generated/client';
export function TodoList() {
const todos = query(api.todos.list());
const todoForm = form(api.todos.create, {
onSuccess: () => todos.refetch(),
});
return (
<form onSubmit={todoForm.onSubmit}>
<input name="title" placeholder="What needs to be done?" />
<button type="submit">Add</button>
{todos.data.map((t) => (
<li key={t.id}>{t.title}</li>
))}
</form>
);
}
Features
Not another framework wrapper.
Every feature exists because the compiler knows your entire stack — schema, API, and UI — at build time.
01
Your UI decides the query.
Reference task.title in a component — the compiler traces the access and generates a SELECT with only that column. Add task.dueDate to the template, the query adapts. Remove it, the column drops. No field lists to maintain. No GraphQL fragments. The compiler knows what your UI needs.
02
Rename a field. Everything breaks — at compile time.
One schema defines the shape. One type chain flows from database column to API route to form input. Rename title to name — TypeScript finds every broken reference across your entire stack before you run a single test.
03
Your schema is the documentation.
Every entity gets REST endpoints and a fully documented OpenAPI spec. No decorators. No separate spec file. No drift between code and docs. Define the entity, get CRUD operations with complete request/response schemas at /api/openapi.
04
Generate. Publish. Let agents consume.
One command generates a typed client SDK from your API. Publish to npm for third-party developers. Feed it to an LLM agent. Every endpoint typed, every response validated, every breaking change caught at compile time — for your consumers too.
05
One pattern per task. Agents get it right the first time.
Every API has one canonical pattern. No framework trivia, no hidden conventions. Add one line to the schema — database, API, SDK, validation, and forms all update. An LLM agent writes correct code on the first try because there's only one way to do it.
06
The compiler does the work. Not the browser.
let count = 0 becomes a reactive signal. const double = count * 2 becomes a computed value. The compiler transforms at build time — not the browser at runtime. No virtual DOM, no diffing, no framework overhead. Just direct DOM updates.
Why Vertz
One schema, every layer
Define your data once. The compiler derives your database, API, client SDK, and form validation. Change a field — it updates everywhere.
One way to do things
No choice paralysis. No tribal knowledge. Every API has one canonical pattern. Your team and your AI agent write the same code — correctly, on the first try.
Production-ready by default
Auth, validation, error handling, OpenAPI docs, deployment — built in, not bolted on. You add business logic. Vertz handles the rest.
The stack
One framework. Not fifteen npm installs.
Every layer works together because they were built together.
Get started in 30 seconds.
SQLite database, REST API, and UI — all running locally. No Docker. No config files. Edit any layer and see it update instantly.
What about...
Is it production-ready?
Pre-v1 and moving fast. Cloudflare Workers deployment works today. We break APIs intentionally to find the best design — and we ship every improvement as a patch.
Can I use existing libraries?
Yes. Standard TypeScript, npm-compatible. Use any library you want alongside Vertz.
What if I only want the UI?
Use vertz/ui standalone. The full stack is optional — each layer works independently.
What about React / Next.js?
Vertz isn't a React wrapper. It's a different model: signals instead of VDOM, compile-time instead of runtime. If you're happy with React, stay. If you're tired of the ceremony, try Vertz.
We spent years stitching together ORMs, API frameworks, validation libraries, and UI toolkits — and watching them drift apart. We built Vertz so the next team doesn't have to.

Vinicius Dacal
Co-founder
15+ years building at scale. Senior Engineer at Scrunch. Previously Staff Engineer at Voiceflow. Led Angular-to-React migrations, built GraphQL servers, shipped NestJS backends — and got tired of fighting the frameworks.
@vinicius_dacal
Matheus Poleza
Co-founder
10+ years full-stack. Seed to Series C startups. Microservices, AI integration, performance at scale — now channeling it all into one stack that does it right.
@matheeuspolezaBuild this with us.
Join the Discord. Talk to the founders, preview breaking changes, and help shape the APIs before v1.
Join Discord →