ObjectStack

Conceptual Quickstart

A preview of the ObjectStack Developer Experience

Conceptual Quickstart

Note: ObjectStack is currently in Private Beta. This guide illustrates the intended Developer Experience (DX) for the upcoming v1.0 release.

Building with ObjectStack follows a "Schema-First" methodology. You don't write boilerplate; you define intent.

Step 1: Initialize the Workspace

It starts with the CLI. This scaffolds a standard monorepo structure.

npx objectstack init my-crm
cd my-crm

Step 2: Define your Data (ObjectQL)

Create a simple schema file schema/contact.yml.

entity: Contact
storage: postgres_main
fields:
  - name: email
    type: email
    required: true
    unique: true
  - name: status
    type: enum
    options: [lead, customer, churned]
    default: lead
  - name: notes
    type: text
    
# Permissions are built-in
access:
  read: role(user)
  write: role(manager)

Step 3: Run the Engine

Start the development server. The Engine will automatically spin up a local SQLite database (for dev) and apply the schema.

npm run dev

You now have a fully functional GraphQL-like API and a REST API running at http://localhost:3000/api.

Step 4: Define the UI (ObjectUI)

Instead of building a Form component from scratch, define a page view in views/edit-contact.yml.

page: Edit Contact
path: /contacts/:id
component: form
target: Contact
layout:
  - section: "Basic Info"
    fields: [email, status]
  - section: "Internal"
    fields: [notes]

Step 5: Launch Studio

Open Object Studio (the local dashboard) to inspect your app.

npx object studio

You will see a fully rendered, working Management Interface for your Contacts. You can create, edit, and delete records immediately.

Step 6: Deploy to Cloud

When you are ready for production, deploy to Object Cloud.

npx object deploy

The CLI will:

  1. Provision a hosted PostgreSQL database.
  2. Deploy the ObjectOS Kernel (Serverless).
  3. Upload your UI manifests to the global CDN.

Total time derived unique value: < 5 minutes. Lines of boilerplate code written: 0.

On this page