mosta.tech
Documentation

Getting Started

Everything you need to design, build, and export database schemas with Mosta.

1

Installation & Setup

Install the Mosta CLI and authenticate with your account to get started.

Terminal
# Install the Mosta CLI globally
npm install -g @mosta/cli

# Authenticate with your account
mosta auth login

# Initialize a new project
mosta init my-database
You can also use Mosta directly in the browser at /studio without installing the CLI.
2

Creating Your First Schema

Initialize a schema with a name, target database, and description.

TypeScript
// Create a new schema programmatically
import { Mosta } from "@mosta/sdk";

const mosta = new Mosta({ apiKey: process.env.MOSTA_API_KEY });

const schema = await mosta.schemas.create({
  name: "my-app-db",
  database: "postgresql",
  description: "Main application database",
});
3

Adding Tables & Attributes

Define tables with typed attributes, constraints, and default values.

TypeScript
// Add a users table
await mosta.tables.create(schema.id, {
  name: "users",
  attributes: [
    { name: "id", type: "uuid", primaryKey: true, default: "gen_random_uuid()" },
    { name: "email", type: "varchar(255)", unique: true, notNull: true },
    { name: "name", type: "varchar(255)", notNull: true },
    { name: "created_at", type: "timestamp", default: "now()" },
  ],
});
Attribute names must be unique within a table. Using duplicate names will throw a validation error.
4

Defining Relationships

Connect tables with foreign key relationships and cascade rules.

TypeScript
// Define a one-to-many relationship
await mosta.relationships.create(schema.id, {
  from: { table: "users", attribute: "id" },
  to: { table: "posts", attribute: "author_id" },
  type: "one-to-many",
  onDelete: "CASCADE",
});
5

Exporting Code

Export your schema to production-ready code in your preferred language and ORM.

Terminal
# Export to TypeScript (Drizzle ORM)
mosta export --schema my-app-db --lang typescript --orm drizzle

# Export to Python (SQLAlchemy)
mosta export --schema my-app-db --lang python --orm sqlalchemy

# Export raw SQL migrations
mosta export --schema my-app-db --format sql --output ./migrations
Pro and Enterprise plans support all export formats. Free tier is limited to TypeScript output.

Key Concepts

Schema

A complete database design containing tables, relationships, and constraints.

Table

A data entity with named attributes, types, and constraints like PK/FK.

Attribute

A column in a table with a data type, default value, and optional constraints.

Relationship

A connection between tables — one-to-one, one-to-many, or many-to-many.

Migration

A versioned set of SQL statements that evolves your database schema.

Workspace

An isolated environment containing schemas, settings, and team members.

Canvas Controls

ScrollZoom in/out
Space + DragPan canvas
Ctrl + ClickMulti-select tables
Ctrl + ASelect all
Ctrl + 0Reset zoom
Ctrl + FFit to screen

Troubleshooting

Tables are not rendering on the canvas

Clear your browser cache and ensure WebGL is enabled. Try disabling browser extensions that may interfere with canvas rendering.

Export generates empty files

Ensure your schema has at least one table with one attribute. Check the output language selector in the export dialog.

Real-time sync is delayed

Check your network connection. Mosta requires a stable WebSocket connection for real-time collaboration.

CLI authentication fails

Run `mosta auth login` to re-authenticate. Ensure your API key hasn't expired in Settings > API Keys.

API Reference

Method
Endpoint
Description
GET/api/v1/schemasList all schemas in your workspace
POST/api/v1/schemasCreate a new schema
GET/api/v1/schemas/:idGet schema by ID with all tables
PUT/api/v1/schemas/:idUpdate an existing schema
POST/api/v1/schemas/:id/exportExport schema to code
DELETE/api/v1/schemas/:idDelete a schema

Need More Help?

Join our community or reach out to support at hi@mosta.tech.