Skip to Content
๐Ÿš€ Alpha Release - Yama JS is currently in alpha. APIs may change without notice.
Home

Yama JS

Build APIs Faster

Configuration-first backend platform that turns YAML into fully functional APIs, SDKs, and documentation

npx @betagors/yama-cli create my-api

Why Yama?

Yama separates structure from logic:

  • Structure lives in YAML (schemas, endpoints, auth rules, behaviors)
  • Logic lives in TypeScript handlers
  • Platform handles everything else (routing, validation, generation, docs, consistency)

This approach dramatically reduces boilerplate, prevents AI hallucinations, and enables teams to build apps faster and safer.

โœจ Features

๐ŸŽฏ

YAML-First Configuration

Define your entire API structure in yama.yaml

๐Ÿš€

Type-Safe TypeScript

Auto-generated types and SDKs from your config

๐Ÿ”Œ

Plugin System

Extensible architecture with database and HTTP adapters

๐Ÿ“š

Auto-Generated Docs

OpenAPI documentation generated from your config

๐Ÿ› ๏ธ

Powerful CLI

Development server, code generation, and migration tools

๐Ÿ”’

Built-in Auth

JWT authentication and authorization rules

๐Ÿ—„๏ธ

Database Support

PostgreSQL and PGLite adapters with migrations

โšก

Fast Development

Hot reload, watch mode, and instant feedback

๐Ÿš€ Quick Start

Install the Yama CLI globally:

npm install -g @betagors/yama-cli

Create a new project:

yama create my-api cd my-api npm install

Start the development server:

yama dev

Your API will be running at http://localhost:4000 ๐ŸŽ‰

Quick Example

Define your API structure in yama.yaml:

name: my-api version: 1.0.0 schemas: Todo: type: object properties: id: type: string format: uuid title: type: string completed: type: boolean endpoints: /todos: get: handler: handlers/listTodos response: type: array items: $ref: "#/schemas/Todo"

Write your business logic in TypeScript:

import { HandlerContext } from '@betagors/yama-core'; export async function listTodos(context: HandlerContext) { return [ { id: '1', title: 'Learn Yama', completed: false }, { id: '2', title: 'Build an API', completed: true }, ]; }

Thatโ€™s it! Yama handles routing, validation, type generation, and documentation automatically.

๐Ÿ“š Documentation

๐Ÿ’ก Philosophy

Yamaโ€™s core philosophy:

  • YAML defines the contract - Structure is explicit and version-controlled
  • Code defines custom behavior - Business logic stays in TypeScript
  • Yama guarantees correctness - Type safety, validation, and consistency

Made with โค๏ธ by Betagors Labs

GitHub

โ€ข

Discussions

โ€ข

Issues

Last updated on