Open source · TypeScript

The fastest way to build ERP Systems

Use the AI-powered Studio or write TypeScript directly. Either way, you get a production-ready app with database, API, UI, and permissions. One codebase, fully yours.

$ npx create-rangka my-app
U

Created sales.customer model
Created sales.invoice model
Generated list and form pages

Your app is ready. Run npx rangka dev to start.

Generated

Database table

sales_customers

REST API

/api/sales/customers

List view + Form

/customers

RBAC permissions

create, read, update, delete

Validation rules

required, type, constraints

TypeScript
UTF-8
Ln 1, Col 1 rangka v1.0
Terminal
$ npx rangka dev
Database synced — 1 table created (sales_customers)
API routes registered — /api/sales/customers [GET, POST, PUT, DELETE]
UI pages generated — list, detail, form
Ready at http://localhost:3000

One model definition. Database, API, UI, and permissions — all generated.

How it works

Two ways in. Same result.

Use the visual Studio or write TypeScript by hand. Both paths produce the same framework code.

1

Describe or define

Create a customer management app with invoicing
Generating models, pages, and services...

Tell Studio what you need in plain language, or write TypeScript definitions by hand. Both produce the same framework code.

2

Watch it build

models/customer.ts
export default defineModel(
  'sales.customer',
  name: field.string()
  email: field.string()
  status: field.enum(...)
Live preview
Globex Corp
Meridian Group
Quantum Partners
+ New

Studio writes models, pages, and logic while you see a live preview. In code, hot reload picks up changes instantly. The model visualizer shows how your data relates.

3

Refine and extend

Properties
credit_limit
assigned_to
required
Code
credit_limit:
  field.money()
assigned_to:
  field.link('core.user')

Edit in Studio's visual editor, or switch to the built-in code editor. When you need something custom, write a React page or a hook. The framework won't fight you.

4

Ship

terminal
$ docker compose up -d
Database connected
3 modules loaded
Server running at :3000

Deploy anywhere Node.js runs. Docker-ready, works on any cloud, VPS, or your own server.

Demo

One definition. Full-stack app.

Write a single model and you get a database table, REST API, list view, form, permissions, and validation. Change a field, restart, and the database updates without losing data.

customer.model.ts
1234567891011
import { defineModel, field } from 'rangka'
export default defineModel('sales.customer', {
fields: {
name: field.string({ required: true }),
email: field.string(),
status: field.enum['active', 'inactive']),
credit_limit: field.money(),
assigned_to: field.link('core.user'),
},
})
localhost:3000 /customers

Customers

Name Email Status
Globex Corporation contact@globex.com active
Meridian Group info@meridian.io active
Quantum Partners hello@quantum.co inactive
3 records

Your entire app is built from four definitions: Model (data, API, and UI), Page (screens and layouts), Service (business logic), Hook (lifecycle rules). That's the whole framework.

Features

Everything you need to ship

Start small, extend as you grow. No artificial limits.

customer.model.ts
import { defineModel, field } from 'rangka'
export default defineModel('customer', {
name: field.string({ required: true }),
email: field.string(),
credit: field.money(),
status: field.enum['active', 'inactive']),
owner: field.link('core.user'),
})

Full type safety

TypeScript from database to UI. Catch errors before they hit runtime.

Create a CRM with invoicing
generating 3 models...

AI-powered Studio

Describe what you need, get real framework code. Bring your own API key.

Plugin architecture

Extend with modules, hooks, and custom logic. Only add what you actually need.

terminal
$ docker compose up -d
Creating network rangka_default
rangka-db healthy
rangka-redis healthy
rangka-api :3001
rangka-app :3000
rangka-web :4321
All services running — 1.2s

Deploy anywhere

Docker-ready, works on any cloud, VPS, or on-premise. No vendor lock-in.

Schema
Database

Non-destructive sync

Edit your schema and restart. The database migrates without data loss.

Roles
admin
R W D
editor
R W
viewer
R
Audit log
sarah updated invoice.status
2m ago
mike created customer
5m ago
admin changed role.editor
12m ago
Tenants
A
Acme Corp
scope: acme.*
G
Globex Inc
scope: globex.*
+
2 more tenants

Enterprise patterns

RBAC, audit trails, and multi-tenant scopes built in at the schema level.

Open Source

Built in the open. Owned by you.

Use it commercially, fork it, self-host it. No CLA, no feature gating, no strings.

src/
customer.model.ts
invoice.model.ts
dashboard.page.ts
ownership: "yours"

Own your code

Every line is standard TypeScript sitting in your repo.

repo: "public"

Community-driven

Development happens on GitHub. Issues, PRs, and discussions — all in the open.

Any VPS / Cloud
Docker
PostgreSQL
vendor: "none"

No lock-in

Runs anywhere Node.js does, with standard PostgreSQL underneath.

GitHub stars
0
Contributors
0
npm downloads
0

Start building today

Go from your first definition to a working app in minutes. Your tools, your infrastructure, your code.

Terminal
$ npx create-rangka my-app