Define Once,
Run Everywhere
A metadata-driven framework that turns object definitions into REST APIs, admin consoles, and database schemas.
No boilerplate. No code generation.
import { Data } from '@objectstack/spec';
const task: Data.Object = {
name: 'task',
label: 'Task',
fields: {
subject: { type: 'text', required: true },
status: {
type: 'select',
options: ['draft', 'active', 'done'],
},
assignee: { type: 'lookup', reference: 'user' },
},
};
// → REST API at /api/v1/task
// → Console UI at /_studio/Object → REST API
Define your data objects and get fully typed CRUD endpoints automatically. No route files, no controllers.
Built-in Console
Run `os studio` to get a visual admin panel for browsing data, editing records, and inspecting your schema.
Multi-Database
PostgreSQL, MongoDB, SQLite — same object schema, any backend. Switch databases without changing a single line of code.
Full Type Safety
Zod-first schema definitions with complete TypeScript inference. Catch errors at compile time, validate at runtime.
Namespace Isolation
Multi-tenant by design. Each plugin gets its own namespace — no field collisions, clean data boundaries.
Plugin System
Compose applications from reusable plugins. CRM, BI, Auth — mix and match building blocks for your stack.
Who Is It For?
Full-Stack Developers
Build internal tools, admin dashboards, and CRUD apps in minutes with just object definitions.
Platform Teams
Standardize data models and APIs across microservices with a shared metadata protocol.
Low-Code Builders
Visual schema design via Console UI, with full code extensibility when you need it.